Как добраться до файла с настройками Apache 

Основа основ – файл .htaccess. Это обыкновенный текстовый файл, который нужно создать в стандартной программе «Блокнот» и разместить в корневом каталоге сайта. 
Кстати, «корневой каталог сайта» тоже часто вызывает вопросы у новичков. Отвечаем: сайт лежит на сервере как обычный каталог (папка) с подкаталогами, в которых находятся файлы. Удобнее всего работать с каталогами и файлами сайта с помощью FTP-клиента. Имея логин и пароль (их предоставляет хостер), можно зайти в папку, где лежит ваш сайт – это и есть корневой каталог. Именно в нем нужно размещать файлы robots.txt и .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, и вы даже через год или два сможете легко вспомнить, зачем нужна та или иная настройка. 


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

Обычно код главной страницы физически расположен в файле /index.html (или index.php – для большинства динамических сайтов), но сайт должен открываться по любому из запросов: yoursite.ru, yoursite.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. 


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

Чтобы убедиться, что сервер будет выдавать именно ту страницу 404, которую вы подготовили и создали, а не служебную или какую-либо еще, добавьте такую строчку: 
ErrorDocument 404 http://www.yousite.ru/404.php
Аналогично можно указать страницы и для других ошибок. 


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

Перенаправить с одной страницы на другую можно с помощью директивы Redirect:
 
Redirect 301 /old.html http://www.yoursite.com/new.html

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


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

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

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

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


Настройка ЧПУ (человекупонятных 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. 


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

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

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

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

Важная рекомендация: поищите в интернете оптимальные настройки .htaccess для вашей системы управления контентом. У всех CMS есть свои особенности – например, это специфические URL’ы страниц-дублей, с которых нужно ставить редирект (и закрывать их от индексации).
Для большинства популярных CMS можно найти уже готовые правила для .htaccess. 

РР°РРµСС