Файл .htaccess

Нашел очередную заметку по файлу .htaccess.

Настройки веб-сервера.

Это обыкновенный текстовый файл, который нужно создать в стандартной программе «Блокнот» и разместить в корневом каталоге сайта.

В подавляющем большинстве случаев .htaccess уже будет лежать в корневом каталоге, так что можно просто редактировать его в «Блокноте» или встроенном редакторе FTP-клиента.

 

 

Что писать в .htaccess

В этом настроечном файле можно писать как правила работы для ядра Apache, так и для подключаемых модулей, из которых для нас интерес представляет mod_rewrite. (Во времена оны нужно было убедиться, что хостер его установил. Но в 2011-м году крайне сложно найти хостинг-провайдера, не подключающего этот модуль Apache, так что беспокоиться не стоит).

Несмотря на упрощенность (все ненужное простому оптимизатору таинство Apache сконцентрировано в другом файле настроек – httpd.conf), полные перечени функций и базового синтаксиса доступных настроек [http://httpd.apache.org/docs/2.2/howto/htaccess.html] и, в частности, настроек mod_rewrite [http://www.egoroff.spb.ru/portfolio/apache/mod_rewrite.html] – немаленькие документы. Веб-разработчик может получить абсолютно полный контроль над сервером, но, к счастью, поисковая оптимизация этого не требует. Вполне достаточно знать основные команды!

Комментарий в .htaccess предваряется символом # – строку, перед которой стоит решетка, веб-сервер обрабатывать не будет. Комментируйте даже такой небольшой код, как правила для Apache, и вы даже через год или два сможете легко вспомнить, зачем нужна та или иная настройка.

  1. Главная страница без дублей  

    Обычно код главной страницы физически расположен в файле /index.html (или index.php – для большинства динамических сайтов), но сайт должен открываться по любому из запросов: yoursite.ruyoursite.ru/index.html,www.yoursite.ru и www.yoursite.ru/index.html. Но для поисковых систем это четыре разных URL! Если не настроить .htaccess верно, поисковик добавит в свой индекс четыре одинаковых страницы. Это признак некачественного сайта. Избежать этой проблемы можно с помощью такого кода в .htaccess: 

    Options +FollowSymLinks
    RewriteEngine on
    RewriteCond %{HTTP_HOST} ^yoursite.ru
    RewriteRule (.*) http://www.yoursite.ru/$1 [R=301,L]
    RewriteCond %{THE_REQUEST} ^[A-Z]{3,9}\ /index\.html\ HTTP/
    RewriteRule ^index\.html$ http://www.yoursite.ru/ [R=301,L]

    Все страницы-дубли будут склеены редиректом с кодом 301 («постоянное перемещение») с главной страницей –http://www.yoursite.ru/. Перед этим, конечно, нужно проверить, как «Яндекс» проиндексировал сайт – с www или без. Желательно также назначить совпадающее основное зеркало в файле robots.txt.

     

  2. Строгий URL страницы 404  

    Чтобы убедиться, что сервер будет выдавать именно ту страницу 404, которую вы подготовили и создали, а не служебную или какую-либо еще, добавьте такую строчку: 

    ErrorDocument 404 http://www.yousite.ru/404.php

    Аналогично можно указать страницы и для других ошибок.

     

  3. Постраничный и групповой редиректы  

    Перенаправить с одной страницы на другую можно с помощью директивы Redirect: 

    Redirect 301 /old.html http://www.yoursite.com/new.html

    Для группового редиректа нужно использовать RedirectMatch – эта команда маски URL и имен файлов.

     

  4. Сохранение файлов вместо открытия  

    Многие видели, как при попытке скачать архив с расширением .rar браузер открывает его в виде простого текста из мешанины символов. Это значит, что на сервере сайта не настроено принудительное сохранение типов файлов, которые не должны открываться в браузере. 

    AddType application/octet-stream .rar .doc .mov .avi .pdf .xls .mp4

    Можно добавить и другие расширения.

     

  5. Настройка ЧПУ (человекупонятных URL)  

    Настоятельно рекомендуем использовать настройки, которые предоставляет ваша CMS. Собственно, непонятные длинные URL возникают только при использовании CMS (на статическом сайте их не бывает). Следовательно, используйте настройки и модули CMS для настройки – во всех современных движках такие возможности есть. 

    Для их корректной работы в .htaccess должна быть строчка RewriteEngine On (включение mod_rewrite). Настройка же ЧПУ с помощью «голого» .htaccess – дело достаточно кропотливое. Например, чтобы превратить URL типаwww.yoursite.ru/script.php?tv=123 в более понятный www.site.ru/samsung/tv/123/, пишем вот такие строчки (RewriteEngine On нужно писать в том случае, если раньше в .htaccess mod_rewrite еще не был подключен):

    RewriteEngine on
    RewriteRule samsung/(.*)/(.*)/$ /script.php?$1=$2

    Понятно, что для успешной настройки ЧПУ таким способом нужно освоить весь синтаксис .htaccess и немало потрудиться. Гораздо проще, повторимся, пользоваться средствами CMS.

     

  6. Дубли страниц без слэша в конце URL  

    Чтобы предотвратить ситуацию с индексированием страниц www.yoursite.ru/about и www.yoursite.ru/about/ как разных, ставим следущий код: 

    RewriteCond %{REQUEST_FILENAME} !-f
    RewriteCond %{REQUEST_URI} !(.*)/$
    RewriteRule ^(.*)$ /$1/ [R=301,L]

    Со страниц без слэша будет установлен редирект на «слэшевые».

     

Все приведенные выше примеры не стоит бездумно копировать в .htaccess вашего сайта. Разберитесь, есть ли у вашего сайта описанная проблема, можно ли ее решить с помощью приведенного выражения, а потом уже правьте код. Обязательно сохраните копию файла .htaccess до того, как начнете вносить изменения!