А.Календарев. 01 Июня 2004 09:33
edocs.al.ru
синтаксис.htaccess
.htaccess это весьма интересный файл вэб сервера apache, который дает вам возможность самому конфигурировать www без вмешательств системного администратора. Все что нам надо, это только знать синтаксис и принцип использования этого файла.
Принцип действия.htaccess заключается в следующем. Каждый раз обращаясь к вашей странице, вэб сервер apache пытается найти.htaccess и посмотреть, что за директивы там для него указанны.
Например вызывается страница с адресом /about/firma/pages.html.
Вэб сервер пройдет по всей цепочке каталогов
/
/about/
/about/firma/
и если найдет там.htaccess, то прочитает его и будет пытаться выполнить все, что вы ему там указали. Если.htaccess расположен в каждой из директорий, то главным будет тот, который расположен в самой верхней директории, т. е. /about/firma/
Теперь посмотрим, что мы можем делать с.htaccess, хотя бы его базовые возможности.
DirectoryIndex index.php3 index.php index.html
Указывает какие файлы будут считаться в директории стартовыми, т. е. открываться при запросе данной директории.
ErrorDocument 404 /404.html
Если пользователь вызывает не существующую страницу, то вместо стандартного сообщения об ошибке 404, мы перекидываем его на созданную нами страницу 404.html, которая расположена в корне вашего вэб сайта. Таким образом мы можем управлять многими ошибками.
AddDefaultCharset windows-1251
Указываем, что все отдаваемые страницы будут иметь кодировку windows-1251
redirect /_vti_bin http://www.microsoft.com
Это уже для всех наших сетевых вирусов и сканеров. Теперь любой запрос с адресом /_vti_bin будет автоматически перенаправляться на Microsoft.
Точно так же можно управлять и некоторыми настройками php, например:
php_flag magic_quotes_gpc on
php_flag register_globals on
php_value error_reporting 63
А теперь посмотрим что еще полезного можно сделать на нашем сайте.
Во первых не забудьте все таки переопределить основные ошибки, тогда вы сохраните вашего серфера и не потеряете его.
ErrorDocument 401 /my_error_pages.html
ErrorDocument 403 /my_error_pages.html
ErrorDocument 404 /my_error_pages.html
ErrorDocument 405 /my_error_pages.html
ErrorDocument 500 /my_error_pages.html
Если у вас на сервере включен mod_rewrite то можно расширить свои возможности.
Для этого нам надо добавить в.htaccess
Options +FollowSymlinks
AuthUserFile /dev/null
AuthGroupFile /dev/null
RewriteEngine On
RewriteOptions inherit
А вот далее
Например в зависимости от того, с какого сайта на нас был реферер, мы посылаем посылаем пользователя на определенную страницу.
RewriteCond %{HTTP_REFERER} ^http://([a-z09-]+\.)*site.com/.*$ [NC,OR]
RewriteCond %{HTTP_REFERER} ^http://([a-z09-]+\.)*site.com/ [NC,OR]
RewriteRule /* http://www2.site.com/ [R,L]
В зависимости от языка браузера и запрошенного файла перенаправляем пользователя.
Например если у вас англоязычный сайт, но кто то с браузером поддерживающим русский язык запросил у вас html файл, то отправим такого на ваш русский сайт
RewriteCond %{ HTTP:Accept-Language} ^ru.*
RewriteRule .*\.html$ http://www.site.ru [R]
или просто, в не зависимости какой файл запросили
RewriteCond %{ HTTP:Accept-Language} ^ru.*
RewriteRule .*\.*$ http://www.disney.com [R]
А теперь запретим хотлинк картинок на вашем сайте
RewriteCond %{HTTP_REFERER} !^http://([a-z09-]+\.)*your_site.com/.*$ [NC]
RewriteRule .*.(gif|GIF|Gif|jpg|Jpg|jpeg|JPG|JS|js)$ [F]
Для защиты от хотлинка вы можете посетить вот эту страницу. Укажите какие файлы вы хотите защищать, и вы получите готовый.htaccess сгенерированные под ваш сервер.
Если у вас есть интересный пример.htaccess файла, то пришлите его мне или поделитесь им на форуме, и я обязательно добавлю его сюда.
|