Что такое и для чего предназначен файл .htaccess. Это файл, который управляет поведением вашего веб-сервера. С помощью .htaccess можно настраивать многие параметры вашего сайта так, как это необходимо вам.
Такой файл можно, а иногда просто необходимо, расположить в любой папке вашего сайта. В таком случае вы сможете еще дополнительно управлять папкой отдельно. Стоит учесть что файл работает только на серверах с Apache.
Приведу ниже несколько директив, которые наиболее востребованы. Их можно вставлять в любое место вашего файла .htaccess.
1. Запрет доступа к сайту
Запрет доступа к сайту с определенных IP:
1 2 3 4 5 6 7 8 | ## USER IP BANNING <limit GET POST> order allow,deny allow from all Deny from xxx.xxx.xxx.xxx </limit> |
Вместо ххх прописываете IP адрес, которому будет запрещен вход на сайт.
А такая директива, наоборот, будет открывать доступ к сайту только с указанных IP:
1 2 3 4 5 6 7 | <limit GET POST> Order Deny,Allow Deny from all Allow from xxx.xxx.xxx.xxx </limit> |
2. Запрет доступа к важным файлам
В целях безопасности рекомендуется закрывать доступ к файлам .htaccess и wp-config.php. Сделать это можно, прописав следующую директиву:
1 2 3 4 5 6 7 8 9 10 11 12 | # защищаем wpconfig.php <files wp-config.php> order allow,deny deny from all </files> #защищаем htaccess <files .htaccess> order allow,deny deny from all </files> |
3. Ограничение доступа к админке
Для тех у кого статический IP адрес, есть смысл разрешить доступ к админке только с вашего IP-адреса.
1 2 3 4 5 6 7 8 9 10 11 | AuthUserFile /dev/null AuthGroupFile /dev/null AuthName "Example Access Control" AuthType Basic <limit GET> order allow, deny deny from all allow from Ваш IP </limit> |
4. Редирект 301 и 302
Редирект 301 сообщает поисковым системам, что страница или сайт были перемещены по новому адресу, старую страницу индексировать не надо, а вместо нее нужно проиндексировать новую. Существует много директорий для таких редиректов, но у кого-то возможно не все сработают. Самая простая и надёжная директива 301:
Redirect 301 /old-page http://ваш-сайт.ру/new-page
Есть еще одно полезное применение такого редиректа. Известно, что древовидные комментарии в WordPress генерируют дубли страниц c параметром «replytocom» в адресе страниц. Обычно их закрывают в файле robots.txt, но проблема в том, что все записи в robots.txt являются только рекомендациями, и ПС не обязаны им следовать. Вот Google и не следует, добавляя все такие страницы в дополнительный индекс. В таком случае необходимо использовать 301 редирект.
С его помощью мы перенаправим все страницы дублей на страницу самой записи, к которой они относятся:
RewriteCond %{QUERY_STRING} replytocom=
RewriteRule ^(.*)$ /$1? [R=301,L]
Редирект 302 сообщает о том, что страница была перемещена временно, а потому нужно индексировать и старую, и новую.
Redirect 302 /old-page http://ваш-урл.ру/new-page
5. Защита от хотлинков
Проще говоря, защита от копирования ваших картинок со страниц сайта. Проблема не в самом копировании картинок, а в том как её копируют. Некоторые просто копируют ссылки на картинки и подгружают себе с вашего сервера, тем самым разгружая свой сайт и создавая дополнительную нагрузку на ваш. Вот для этого и ставится защита:
RewriteEngine On
RewriteCond %{HTTP_REFERER} !^http://(.+.)?ваш-сайт.com/ [NC]
RewriteCond %{HTTP_REFERER} !^$
RewriteRule .*.(gif|jpg|png|ico)$ — [F,L]
6. GZIP сжатие
Все данные, которые запрашивает клиент, для ускорения передачи можно сжимать на сервере, а затем распаковывать в браузере:
ForceType text/javascript
Header set Content-Encoding: gzip
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 | </filesmatch> <filesmatch ".css.gz$"> ForceType text/css Header set Content-Encoding: gzip </filesmatch> <filesmatch ".js$"> ForceType text/javascript RewriteEngine On RewriteCond %{HTTP_USER_AGENT} !".*Safari.*" RewriteCond %{HTTP:Accept-Encoding} gzip RewriteCond %{REQUEST_FILENAME}.gz -f RewriteRule (.*).js$ $1.js.gz [L] ForceType text/javascript </filesmatch> <filesmatch ".css$"> ForceType text/css RewriteEngine On RewriteCond %{HTTP_USER_AGENT} !".*Safari.*" RewriteCond %{HTTP:Accept-Encoding} gzip RewriteCond %{REQUEST_FILENAME}.gz -f RewriteRule (.*).css$ $1.css.gz [L] ForceType text/css </filesmatch> |
7. Включаем кеширование в браузере
Lля ускорения сайтов рекомендуется использовать Кеширование данных в браузере:
Header append Cache-Control «private»
FileETag MTime Size
ExpiresActive On
ExpiresDefault «access plus 0 minutes»
ExpiresByType image/ico «access plus 1 years»
ExpiresByType text/css «access plus 1 years»
ExpiresByType text/javascript «access plus 1 years»
ExpiresByType image/gif «access plus 1 years»
ExpiresByType image/jpg «access plus 1 years»
ExpiresByType image/jpeg «access plus 1 years»
ExpiresByType image/bmp «access plus 1 years»
ExpiresByType image/png «access plus 1 years»
Существует еще много разных директив, которые вы сможете найти по мере необходимости.
Статья была полезной?