htaccess для WordPress

Ссылка на htaccess для WordPress

Настройки файла htaccess для WordPress.

Стандартный htaccess для Wordpress.

Вот так выглядит стандартный код htacces для wordpress.

1
2
3
4
5
6
7
8
9
10
# BEGIN WordPress
RewriteEngine On
RewriteBase /
RewriteRule ^robots.txt$ - [L]
RewriteRule ^sitemap.xml$ - [L]
RewriteRule ^index\.php$ - [L]
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule . /index.php [L]
# END WordPress

Но я вам рекомендую его расширить. Смотрите предлагаемое.

 

Безопасность  WordPress и защита.

Закрыть доступ к просмотру всех файлов.

Чтобы запретить возможность открыть файл напрямую, через строку браузера, набрав прямой адрес файла, закройте доступ ко всем файлам с помощью htaccess.

1
deny from all

Блокировка по IP.

Если вы хотите закрыть доступ пользователя к сайту, например, за нарушение правил и т. д., вы можете заблокировать пользователя по IP.
Для добавления нового IP по причине блокировки продублируйте строку deny.
xx.xxx.xxx.xxx — вместо этого вставляйте IP пользователя для блокировки
x2.xx2.xx2.xx2 — вместо этого вставляйте второй IP пользователя для блокировки, и так до бесконечности.

1
2
3
4
5
6
<Limit GET POST>
order allow,deny
deny from xx.xxx.xxx.xxx
deny from x2.xx2.xx2.xx2
allow from all
</Limit>

Защита изображения на сайте.

Представьте себе такую ситуацию: какой-нибудь сайт размещает у себя изображение, которое находится на вашем ресурсе. Таким образом, ваш сайт попадет под нагрузку, так как картинки будут загружаться с вашего сайта.
Чтобы этого избежать, пропишете в файле htaccess следующее:

1
2
3
4
RewriteEngine on
RewriteCond %{HTTP_REFERER} !^$
RewriteCond %{HTTP_REFERER} !^https://(www\.)?ваш-сайт.com/.*$ [NC]
RewriteRule\.(png|gif|jpg|jpeg)$ https://www.ваш-сайт.com/stopimg.gif [R,L]

Если кто-то решит установить картинку, хранящуюся у вас на сайте, то увидит вместо ожидаемого результата картинку с предупреждением  stopimg.gif

Защита от Спама.

Зачастую многие спам-боты обращаются напрямую к файлу, который обрабатывает комментарии пришедшие с сайта, этот файл называется wp-comments-post.php. Можно выловить спам-бота от живого пользователя через обращение к файлу wp-comments-post.php на наличие REFERER. При добавлении комментариев, у пользователя он есть, а вот у спам-бота его нет. Но этот метод не является 100% защитой от Спама,  воспользуйтесь дополнительно плагином.
Не забудьте поменять «ваш домен.ru» на ваш (5-тая строка ).

1
2
3
4
5
6
7
# защита комментария от Спам-бота
RewriteEngine On
RewriteCond %{REQUEST_METHOD} POST
RewriteCond %{REQUEST_URI} .wp-comments-post\.php*
RewriteCond %{HTTP_REFERER} !.*ваш домен.ru.* [OR]
RewriteCond %{HTTP_USER_AGENT} ^$
RewriteRule (.*) ^https://%{REMOTE_ADDR}/$ [R=301,L]

Запретить доступ к папке wp-content и wp-includes.

Все пользователи  WordPress знают, что в папке «wp-content» хранятся все плагины и темы, картинки и многое др. Рекомендую защитить папку «wp-content» от нехороших людей (редисок).

Создать новый файл htaccess в папке «wp-content» на хостинге с таким кодом (эти же действия сделайте для папки «wp-includes»):

1
2
3
4
5
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.

1
2
3
4
5
# защита wp-config.php
<files wp-config.php>
order allow,deny
deny from all
</files>

Запрещаем доступ к определенному файлу.

Вы можете защитить файлы плагина css и js.

1
2
3
4
<Files ~ "\.(js|css)$">
order allow,deny
allow from all
</Files>

○ Запрещаем просмотр нежелательным User-Agent.

Вы можете запретить просмотр сайта некоторым программам, сканирующим сайтам, старые браузерам от которых вы полностью отказались.

1
2
3
4
5
6
7
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 адрес.

1
2
3
4
5
6
7
8
9
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» от просмотра нежелательными и любопытными лицами.

1
2
3
4
5
<Files ~ "^.*\.([Hh][Tt][Aa])">
order allow,deny
deny from all
satisfy all
</Files>

Редиректы (перенаправления).

Самый простой редирект на новый сайт и страницу.

Если вам нужно автоматически перенаправить пользователей на другой сайт или страницу, укажите в  файл htaccess вот такой код.

перенаправление на страницу сайта.

1
Redirect 301 / https://ваш сайт.ru/страница.htm

перенаправление на новый адрес сайта.

1
Redirect 301 / https://ваш сайт.ru/

Внимание: «/» — слеш в конце обязательно.
Пример неправильной записи:
https://ваш сайт.ru
Пример правильной записи:
https://ваш сайт.ru/страница.htm
https://ваш сайт.ru/

Также можно перенаправить со страницы на страницу, при этом сохранит PR старой страницы.

1
Redirect 301 /путь/старая-страница.htm https://ваш сайт.ru/новая-страница.htm

○ 301 редирект для слияния страниц с www и без (склеить домен).

Чтобы поисковики один и тот же сайт не считали дублированным, домен нужно склеить.  Если выразится более ясным языком, то сайт должен быть доступен только по одному адресу, т.е. либо с www, либо без www.

главным доменом будет с www

1
2
3
4
Options +FollowSymLinks
RewriteEngine On
RewriteCond %{HTTP_HOST} ^ваш-домен\.ru$ [NC]
RewriteRule ^(.*)$ https://www.ваш-домен.ru/$1 [R=301,L]

главным доменом будет без www

1
2
3
4
Options +FollowSymLinks
RewriteEngine On
RewriteCond %{HTTP_HOST} ^www.ваш-домен\.ru$ [NC]
RewriteRule ^(.*)$ https://ваш-домен.ru/$1 [R=301,L]

Изменяем страницы ошибок.

Рекомендую сделать личные страницы ошибок, где будет краткое разъяснение причины ошибки. В таком случае вы не потеряете клиентов при возникновении ошибки, так как пользователь будет перенаправлен на специальную подготовленую страницу.

1
2
3
4
ErrorDocument 401 /401.html
ErrorDocument 403 /403.html
ErrorDocument 404 /404.html
ErrorDocument 500 /500.html

401.html, 403.html, 404.html, 500.html — это подготовленые страницы ошибок.

Ускорение сайта через файл htaccess для WordPress.

Включаем кэширование браузера клиента.

Файлы сайта будут записываться в кэш браузера пользователя и при повторном вызове будут загружаться оттуда, это ускорит скорость загрузки сайта и уменьшит нагрузку на хостинг.

1
2
3
4
5
6
7
8
9
10
11
12
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"

Важно: обратите внимание на image/, возможно в вашем случае папку с картинками нужно поменять.

Кодировка сайта.

○ Кодировка по умолчанию.

Чтобы избежать проблемы с кодировкой, можно указать принудительную кодировку — UTF8

1
AddDefaultCharset UTF-8

Вот и все!!! Не игнорируйте темой «htaccess для WordPress«, так как htaccess важен для защиты блога.

С Уважением Webmasterok2009