Настройка файла .htaccess – это одна из первых задач, которую следует выполнить после установки ресурса на хостинг. В этой статей перечислены наиболее часто встречающиеся коды, необходимые для настройки сайта, а предоставлены ответы на вопросы новичков, которые впервые столкнулись с необходимостью настройки .htaccess.
Создать в Windows текстовый файл и переименовать его в .htaccess невозможно, так как операционная система не позволит вам сделать этого. Поэтому просто создайте текстовый блокнот с любым именем и расширением .txt, впишите туда необходимые команды, а затем загрузите его при помощи FTP на хостинг, где уже и переименовывайте его в .htaccess.
Второй способ – открыть текстовый блокнот или более удобный Notepad++, вписать туда необходимые коды и сохранить файл с расширением .htaccess. Тогда не нужно будет ничего переименовывать.
Третий способ создать файл .htaccess – изначально сделать это на хостинге, где не будет трудностей с созданием файла с таким названием.
Обязательный код, необходимый любому сайту, который укажет поисковым роботам, что по адресам www.site.ru и site.ru находится один и тот же web-ресурс, а не два разных проекта.
Для редиректа с www на домен без www, добавьте в .htaccess код
RewriteEngine On
RewriteCond %{HTTP_HOST} ^www.site.ru$ [NC]
RewriteRule ^(.*)$ http://site.ru/$1 [R=301,L]
Соответственно, код для редиректа на домен с www:
RewriteEngine On
RewriteCond %{HTTP_HOST} ^site.ru
RewriteRule (.*) http://www.site.ru/$1 [R=301,L]
После того, как вы внесли изменения в .htaccess, откройте свой сайт и проверьте, перебрасывает ли вас на нужный адрес.
Довольно распространенная ошибка в настройке сайта – отсутствие редиректа с index.html и index.php, в результате чего поисковые системы индексируют главную страницу по двум адресам, что может заметно ухудшить ее позиции. Предупредить это можно простым кодом в .htaccess:
#в случае index.php:
RewriteCond %{THE_REQUEST} ^[A-Z]{3,9}\ /index\.php\ HTTP/
RewriteRule ^index\.php$ http://site/ [R=301,L]
#в случае index.html:
RewriteCond %{THE_REQUEST} ^[A-Z]{3,9}\ /index\.html\ HTTP/
RewriteRule ^index\.html$ http://site/ [R=301,L]
Нередко при посещении сайта посетители попадают на различные ошибки, которые при неправильной настройке .htaccess выглядят как непонятные рядовому пользователю технические сообщения.
Чтобы предупредить это, создайте на хостинге специальные страницы, где простым и понятным языком укажите пользователю, что ему следует сделать. Например, на странице 404.shtml можно указать информацию о том, что данный документ не существует, и предложить продолжить просмотр сайта с главной страницы.
Затем добавьте в .htaccess следующие строки:
ErrorDocument 404 http://site.ru/404.shtml
ErrorDocument 403 http://site.ru/403.shtml
ErrorDocument 401 http://site.ru/401.shtml
ErrorDocument 500 http://site.ru/500.shtml
Более подробно о том, что такое хотлинг или личинг изображений, можно прочесть в статье <a href="https://seo-praktika.com/kak-zaschitit-tekst-na-site.html">Как защитить текст на сайте</a>. Здесь же мы приведем коды для .htaccess, позволяющие защитить сайт от того, чтобы расположенные на вашем сервере изображения, использовались другими ресурсами.
RewriteEngine on
RewriteCond %{HTTP_REFERER} !^$
RewriteCond %{HTTP_REFERER} !^https?://(.*)?site\.ru/.*$ [NC]
RewriteRule \.(jpg|jpeg|png|bmp|gif|swf|css|js)$ - [NC,F,L]
Код, позволяющий отдавать специальную картинку, указывающую на хотлинг
RewriteEngine on
RewriteCond %{HTTP_REFERER} !^$
RewriteCond %{HTTP_REFERER} !^https?://(.*)?sіte\.ru/.*$ [NC]
RewriteRule \.(jpe?g|png|bmp|gif)$ /hotlink.jpg [NC,R,L]
Отдаем хотлинкеру большой файл, который, наверняка, приведет к тому, что его страницы будут загружаться очень долго. Особенно хорошо для этого подходят всевозможные карты размером до нескольких сотен мегабайт.
RewriteEngine on
RewriteCond %{HTTP_REFERER} !^$
RewriteCond %{HTTP_REFERER} !^https?://(.*)?sіte\.ru/.*$ [NC]
RewriteRule \.(jpe?g|png|bmp|gif)$ http://hosting-image/big.jpg [NC,R,L]
Зачастую владельцы сайтов на чистом html сталкиваются с необходимостью использования в своих страницах php-кода. Сделать это довольно просто – добавьте в .htaccess следующий код:
AddHandler application/x-httpd-php .php .html .htm
Это позволит, например, добавить код биржи ссылок (Sape, Linkfeed) на сайт, состоящий исключительно из html-страниц.