Блог

Заметка/Apache: .htaccess

Если верстальщик или программист то знаете что такое “.htacess”. С помощью которого можно регулировать настройки вашего веб-сайта или повысить безопасность.

.htaccess (от. англ. hypertext access) — файл дополнительной конфигурации веб-сервера Apache. Позволяет задавать большое количество дополнительных параметров и разрешений для работы веб-сервера в отдельных каталогах (папках), таких как управляемый доступ к каталогам, переназначение типов файлов и т.д., без изменения главного конфигурационного файла. Действует только на каталог, в котором располагается, и на его дочерние каталоги. Возможность использования .htaccess в том или ином каталоге указывается в httpd.conf (директива AllowOverride). Файл .htaccess может быть размещён в любом каталоге. Директивы этого файла действуют на все файлы в текущем каталоге и во всех его подкаталогах (если эти директивы не переопределены директивами нижележащих файлов .htaccess). Как правило, большинство хостеров разрешают использовать свои файлы .htaccess.

Запрет на просмотр директорий

Options All -Indexes

Отображение собственной страницы в случае ошибки

ErrorDocument 404 /404.html
ErrorDocument 403 /403.html
ErrorDocument 500 /500.html

Блокировка нежелательных гостей с ссылающихся доменов

RewriteEngine on
RewriteCond %{HTTP_REFERER} other_domain.com [NC]
RewriteCond %{HTTP_REFERER} sub.other_domain.com [NC]
RewriteCond %{HTTP_REFERER} baddomain. [NC]
RewriteRule .* – [F]

Блокировка посетителей с определенных IP-адресов

allow from all
deny from 145.177.12.119
deny from 012.43.4.

Позволяет выставить доступ только конкретным IP-адресам

order deny,allow
deny from all
allow from 123.456.789.012
allow from 496.742.011

Изменение стартовую (index.html) страницу

DirectoryIndex newpage.html

Принудительное кэширование файлов
Добавляем заголовки со сроком истечения

<ifModule mod_expires.c>
ExpiresActive On
ExpiresByType text/html “access plus 2 days”
ExpiresByType image/gif “access plus 60 days”
ExpiresByType image/jpg “access plus 60 days”
ExpiresByType image/png “access plus 60 days”
ExpiresByType application/x-javascript “access plus 60 days”
ExpiresByType text/css “access plus 60 days”
ExpiresByType image/x-icon “access plus 360 days”
</IfModule>
Cообщаем браузеру, что файлы не будут изменяться определенный промежуток времени

Защита файлов htaccess

Order Allow,Deny
Deny from all

Отключение отображение запроса на скачивание

AddType application/octet-stream .pdf
AddType application/octet-stream .zip
AddType application/octet-stream .mov

Компрессия посредством mod_deflate. Можно повысить скорость загрузки и скачивания для пользователей посредством модуля mod_deflate в Apache.

<ifmodule mod_deflate.c>
# html, txt, css, js, json, xml, htc:
AddOutputFilterByType DEFLATE text/html text/plain text/css application/json
AddOutputFilterByType DEFLATE text/javascript application/javascript
AddOutputFilterByType DEFLATE text/xml application/xml text/x-component

<filesmatch “\.(js|css|.jpg|.gif|.png|.tiff|.ico)$”>
SetOutputFilter DEFLATE
</filesmatch>
</ifmodule>

Изменить расширение вашего файла

Options +FollowSymlinks
RewriteEngine On
RewriteBase /
RewriteRule ^(.+).zig$ /$1.php [NC,L]

Исключение расширения файла, позволит вам скрыть расширения файла.

Options +FollowSymlinks
RewriteEngineOn
RewriteBase /
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteCond %{REQUEST_FILENAME}.php –f
RewriteRule ^(.+)$ /$1.php [L,QSA]

http://ru.wikipedia.org/wiki/Htaccess