Настройка файла .htaccess не ограничиваются одними лишь редиректами, как полагают многие. Этот файл способен на гораздо большее количество полезных функций, которые помогут при продвижении сайта.
Файл .htaccess могут и должны использовать не только программисты, но и оптимизаторы, ведь с его помощью можно добиться заметного ускорения работы сайта.
В .htaccess можно прописать различные настройки, которые помогут в оптимизации сайта:
— настроить 301-е редиректы;
— настроить главное зеркало сайта;
— ускорить загрузку страниц;
— запретить нежелательным ботам посещать сайт;
— обеспечить безопасность всего сайта и его отдельных разделов.
Где находится файл с настройками Apache
Первый пункт — создание файла .htaccess. Его создают в программе «Блокнот», затем размещают в корневом каталоге сайта.
Что помещают в файл .htaccess
В данном файле следует расписать правила работы для ядра Apache, а также для различных подключаемых модулей, например, mod_rewrite.
Перед каждым комментарием ставится символ #, который не дает серверу обработать данную строку. Возможность комментирования даже небольшого кода позволит вам даже по прошествии длительного промежутка времени вспомнить все особенности настроек.
- Исключение дублей главной страницы.
Необходимо верно настроить .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]
- Страница 404 со строго прописанным URL
Для открытия сервером именно той страницы, что вам необходимо, следует добавить следующую строку: ErrorDocument 404 http://www.yousite.ru/404.php. Этот же тескт возможно указывать и для других типов ошибок.
- Редирект
Для перенаправления с одной страницы на другую следует использовать Redirect, а для групповой перенаправленности используют RedirectMatch,
- Открытие файлов
На сервере следует настроить принудительное сохранение типов файлов, которые не должны открываться в браузере. Например, AddType application/octet-stream .rar .doc .mov .avi .pdf .xls .mp4
- Настройка URL
Практическая любая CMS позволяет использовать настройки, которые преображают непонятные и длинные URL в короткие и внятные.
- Слэш в конце URL
Страницы со слэшем в конце и без него могут индексироваться поисковой системой как разные, поэтому следует прописать следующий код:
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_URI} !(.*)/$
RewriteRule ^(.*)$ /$1/ [R=301,L]
Ускорение загрузки сайта
Первым делом, рекомендуется сжать файлы скриптами на сервере, чтобы они передавались пользователю в сжатом виде. В .htaccess можно включить сжатие при помощи двух модулей — mod_zip и mod_deflate. Они практически идентичны по качеству сжатия.
mod_gzip_on Yes
mod_gzip_dechunk Yes
mod_gzip_item_include file \.(html?|txt|css|js|php|pl)$
mod_gzip_item_include handler ^cgi-script$
mod_gzip_item_include mime ^text/.*
mod_gzip_item_include mime ^application/x-javascript.*
mod_gzip_item_exclude mime ^image/.*
mod_gzip_item_exclude rspheader ^Content-Encoding:.*gzip.*
Затем, усиливаем кеширование. Этот комплекс команд поможет быстрой загрузке сайта для тех посетителей, которые уже на нем были. Браузер не будет заново скачивать картинки и скрипты с сервера, а использует данные из кэша.
ExpiresActive On
ExpiresDefault "access 7 days"
ExpiresByType application/javascript "access plus 1 year"
ExpiresByType text/javascript "access plus 1 year"
ExpiresByType text/css "access plus 1 year"
ExpiresByType text/html "access plus 7 day"
ExpiresByType text/x-javascript "access 1 year"
ExpiresByType image/gif "access plus 1 year"
ExpiresByType image/jpeg "access plus 1 year"
ExpiresByType image/png "access plus 1 year"
ExpiresByType image/jpg "access plus 1 year"
ExpiresByType image/x-icon "access 1 year"
ExpiresByType application/x-shockwave-flash "access 1 year"
Блокировка ботов и нежелательных пользователей
Снижение нагрузки на сайт за счет блокировки нежелательных посетитлей и ботов пойдет сайту только на пользу! Итак, если вы обнаружили какой-то подозрительный трафик с постороннего ресурса, блокируем его:
RewriteEngine on
RewriteCond %{HTTP_REFERER} bad-site.com [NC,OR]
RewriteCond %{HTTP_REFERER} bad-site.com [NC,OR]
RewriteRule .* - [F]
Если вы видите что сайт атакуют боты, которые неизвестно чем на нем занимаются и только нагружают сайт, то вот вам список ботов, которые мы рекомендуем блокировать:
RewriteCond %{HTTP_USER_AGENT} Java [OR]
RewriteCond %{HTTP_USER_AGENT} NjuiceBot [OR]
RewriteCond %{HTTP_USER_AGENT} Gigabot [OR]
RewriteCond %{HTTP_USER_AGENT} Baiduspider [OR]
RewriteCond %{HTTP_USER_AGENT} JS-Kit [OR]
RewriteCond %{HTTP_USER_AGENT} Voyager [OR]
RewriteCond %{HTTP_USER_AGENT} PostRank [OR]
RewriteCond %{HTTP_USER_AGENT} PycURL [OR]
RewriteCond %{HTTP_USER_AGENT} Aport [OR]
RewriteCond %{HTTP_USER_AGENT} DotBot [OR]
RewriteCond %{HTTP_USER_AGENT} SurveyBot [OR]
RewriteCond %{HTTP_USER_AGENT} larbin [OR]
RewriteCond %{HTTP_USER_AGENT} Butterfly [OR]
RewriteCond %{HTTP_USER_AGENT} libwww [OR]
RewriteCond %{HTTP_USER_AGENT} Wget [OR]
RewriteCond %{HTTP_USER_AGENT} SWeb [OR]
RewriteCond %{HTTP_USER_AGENT} LinkExchanger [OR]
RewriteCond %{HTTP_USER_AGENT} Soup [OR]
RewriteCond %{HTTP_USER_AGENT} WordPress [OR]
RewriteCond %{HTTP_USER_AGENT} PHP/ [OR]
RewriteCond %{HTTP_USER_AGENT} spbot [OR]
RewriteCond %{HTTP_USER_AGENT} MLBot [OR]
RewriteCond %{HTTP_USER_AGENT} InternetSeer [OR]
RewriteCond %{HTTP_USER_AGENT} FairShare [OR]
RewriteCond %{HTTP_USER_AGENT} Yeti [OR]
RewriteCond %{HTTP_USER_AGENT} Birubot [OR]
RewriteCond %{HTTP_USER_AGENT} YottosBot [OR]
RewriteCond %{HTTP_USER_AGENT} gold\ crawler [OR]
RewriteCond %{HTTP_USER_AGENT} Linguee [OR]
RewriteCond %{HTTP_USER_AGENT} Ezooms [OR]
RewriteCond %{HTTP_USER_AGENT} lwp-trivial [OR]
RewriteCond %{HTTP_USER_AGENT} Purebot [OR]
RewriteCond %{HTTP_USER_AGENT} User-Agent [OR]
RewriteCond %{HTTP_USER_AGENT} kmSearchBot [OR]
RewriteCond %{HTTP_USER_AGENT} SiteBot [OR]
RewriteCond %{HTTP_USER_AGENT} CamontSpider [OR]
RewriteCond %{HTTP_USER_AGENT} ptd-crawler [OR]
RewriteCond %{HTTP_USER_AGENT} HTTrack [OR]
RewriteCond %{HTTP_USER_AGENT} suggybot [OR]
RewriteCond %{HTTP_USER_AGENT} ttCrawler [OR]
RewriteCond %{HTTP_USER_AGENT} msnbot [OR]
RewriteCond %{HTTP_USER_AGENT} MSNBot-media [OR]
RewriteCond %{HTTP_USER_AGENT} Nutch [OR]
RewriteCond %{HTTP_USER_AGENT} Zeus [OR]
RewriteCond %{HTTP_USER_AGENT} Exabot
Безопасность сайта
И, в заключении, чтобы позаботиться о безопасности настраиваем редирект для всех внешних запросов к базе данных сайта на сайт microsoft.com
redirect /admin.php http://www.microsoft.com
redirect /DOCUMENT_ROOT http://www.microsoft.com
redirect /_mem_bin http://www.microsoft.com
redirect /msadc http://www.microsoft.com
redirect /scripts http://www.microsoft.com
redirect /_vti_bin http://www.microsoft.com
redirect /_vti_inf.html http://www.microsoft.com
redirect /phpmy/scripts/setup.php http://www.microsoft.com
redirect /phpmyadmin/scripts/setup.php http://www.microsoft.com
redirect /php/scripts/setup.php http://www.microsoft.com
redirect /phpMy/scripts/setup.php http://www.microsoft.com
redirect /_phpmyadmin/scripts/setup.php http://www.microsoft.com
redirect /pma/scripts/setup.php http://www.microsoft.com
redirect /admin/scripts/setup.php http://www.microsoft.com
redirect /MyAdmin/scripts/setup.php http://www.microsoft.com
redirect /sql/scripts/setup.php http://www.microsoft.com
redirect /mysql/scripts/setup.php http://www.microsoft.com
redirect /setup.php?dir http://www.microsoft.com
redirect /MSOffice/cltreq.asp http://www.microsoft.com
redirect /(null) http://www.microsoft.com
redirect ///?_SERVER[DOCUMENT_ROOT] http://www.microsoft.com
redirect //?_SERVER[DOCUMENT_ROOT] http://www.microsoft.com
redirect /assets/snippets/reflect/snippet.reflect.php? http://www.microsoft.com
redirect /pagead/test_domain.js http://www.microsoft.com
redirect /pagead/osd.js http://www.microsoft.com
redirect /pagead/expansion_embed.js http://www.microsoft.com
redirect /pagead/render_ads.js http://www.microsoft.com
redirect /pagead/atf.js http://www.microsoft.com
redirect /.svn/entries http://www.microsoft.com
RedirectMatch (.*)\cmd.exe$ http://www.microsoft.com$1
Что мы имеем в итоге
Набор команд в одном файле способен заметно ускорить работу сайта и дополнительно его обезопасить.
Не забудьте создать копию файла .htaccess перед тем как начнете его корректировать.