Правильный htaccess для wordpress
Мне часто приходится создавать сайты на платформе wordpress. Поэтому я часто скачиваю свежую сборку с официального сайта. К моему сожалению, по-молчанию там отсутствуют файлы .htaccess и robots.txt.
Сейчас мы напишем правильный .htaccess для WordPress.
Базовые для сайта на движке wordpress следующие:
# BEGIN WordPress
RewriteEngine On
RewriteBase /
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule . /index.php [L]
# END WordPress
Эти строки включают механизм преобразований, необходимый для создания страниц с использованием ЧПУ.
В зависимости от требований, вы можете добавить туда и дополнительные параметры. Значок # в файле воспринимается как комментарий.
Копируем, и вставляем до # END WordPress
#Сжимаем компоненты сайта путем включения Gzip
AddOutputFilterByType DEFLATE text/html text/plain text/xml application/xml application/xhtml+xml text/javascript text/css application/x-javascript
BrowserMatch ^Mozilla/4 gzip-only-text/html
BrowserMatch ^Mozilla/4.0[678] no-gzip
BrowserMatch bMSIE !no-gzip !gzip-only-text/html
Это основное улучшение, рассмотрим и другие:
Защита изображения на сайте.
Представьте себе такую ситуацию: какой-нибудь сайт размещает у себя изображение, которое находится на вашем ресурсе. Таким образом, ваш сайт попадет под нагрузку, так как картинки будут загружаться с вашего сайта.
Чтобы этого избежать, пропишете в файле htaccess следующее:
RewriteEngine on
RewriteCond %{HTTP_REFERER} !^$
RewriteCond %{HTTP_REFERER} !^http://(www\.)?ваш-сайт.com/.*$ [NC]
RewriteRule\.(png|gif|jpg|jpeg)$ http://www.ваш-сайт.com/stopimg.gif [R,L]
Защита от Спама.
Зачастую многие спам-боты обращаются напрямую к файлу, который обрабатывает комментарии пришедшие с сайта, этот файл называется wp-comments-post.php. Можно выловить спам-бота от живого пользователя через обращение к файлу wp-comments-post.php на наличие REFERER. При добавлении комментариев, у пользователя он есть, а вот у спам-бота его нет. Но этот метод не является 100% защитой от Спама, воспользуйтесь дополнительно плагином.
Не забудьте поменять «ваш домен.ru» на ваш (5-тая строка ).
# защита комментария от Спам-бота
RewriteEngine On
RewriteCond %{REQUEST_METHOD} POST
RewriteCond %{REQUEST_URI} .wp-comments-post\.php*
RewriteCond %{HTTP_REFERER} !.*ваш домен.ru.* [OR]
RewriteCond %{HTTP_USER_AGENT} ^$
RewriteRule (.*) ^http://%{REMOTE_ADDR}/$ [R=301,L]
Запретить доступ к папке wp-content и wp-includes.
Все пользователи WordPress знают, что в папке «wp-content» хранятся все плагины и темы, картинки и многое др. Рекомендую защитить папку «wp-content» от нехороших людей (редисок).
Создать новый файл htaccess в папке «wp-content» на хостинге с таким кодом (эти же действия сделайте для папки «wp-includes»):
Order deny,allow
Deny from all
<Files ~ ".(xml|css|jpe?g|png|gif|js)$">
Allow from all
</Files>
Запрет доступа к файлу wp-config.php
В WordPress файл «wp-config.php» содержит всю важную информацию, например, название и пароль к базе данных. Запретим доступ через файл htaccess.
# защита wp-config.php
<files wp-config.php>
order allow,deny
deny from all
</files>
Запрещаем просмотр нежелательным User-Agent.
Вы можете запретить просмотр сайта некоторым программам, сканирующим сайтам, старые браузерам от которых вы полностью отказались.
SetEnvIfNoCase user-Agent ^FrontPage [NC,OR]
SetEnvIfNoCase user-Agent ^Java.* [NC,OR]
SetEnvIfNoCase user-Agent ^Microsoft.URL [NC,OR]
SetEnvIfNoCase user-Agent ^MSFrontPage [NC,OR]
Order Allow,Deny
Allow from all
Deny from env=bad_bot
Ограничение доступа к админ-панеле WordPress.
Вы можете разрешить доступ к админ-панеле только вашему IP адресу. Но этот метод подходит, если у вас постоянный IP адрес.
xx.xxx.xxx.xxx — это ваш IP адрес.
AuthUserFile /dev/null
AuthGroupFile /dev/null
AuthName "Example Access Control"
AuthType Basic
<LIMIT GET>
order allow, deny
deny from all
allow from xx.xxx.xxx.xxx
</LIMIT>
Защита htaccess.
Мы защитили файлы, папки от посторонних лиц, но не нужно забывать, что сам файл htaccess тоже нуждается в защите. Согласен, немного смешно звучит.
Итак, защитим все файлы, которые начинаются с «hta» от просмотра нежелательными и любопытными лицами.
<Files ~ "^.*\.([Hh][Tt][Aa])">
order allow,deny
deny from all
satisfy all
</Files>
Ускорение сайта через файл htaccess для WordPress.
(Код, который ускоряет блог.)
○ Включаем кэширование браузера клиента.
Файлы сайта будут записываться в кэш браузера пользователя и при повторном вызове будут загружаться оттуда, это ускорит скорость загрузки сайта и уменьшит нагрузку на хостинг.
Header append Cache-Control "public"
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"
#Сжимаем компоненты сайта путем включения Gzip
AddOutputFilterByType DEFLATE text/html text/plain text/xml application/xml application/xhtml+xml text/javascript text/css application/x-javascript
BrowserMatch ^Mozilla/4 gzip-only-text/html
BrowserMatch ^Mozilla/4.0[678] no-gzip
BrowserMatch bMSIE !no-gzip !gzip-only-text/html
Вот и все!!! Не игнорируйте темой «htaccess для WordPress«, так как htaccess важен для защиты блога.