Настраиваем правильный .htaccess для WordPress

3,743 просмотров всего, 2 просмотров сегодня

Оглавление


Чтобы сайт, созданный на системе управления WordPress работал правильно и корректно, обязательно необходимо создать .htaccess – специальный конфигурационный файл, который позволяет настраивать работу web-сервера.

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


Базовый дистрибутив CMS WordPress не содержит файл .htaccess, поэтом его созданием придется заняться отдельно. Сегодня поговорим о том, как это делать, собственно зачем, и куда положить, чтобы все работало.

Зачем вообще нужен .htaccess

Цель создания конфигурационного сайта – возможность модификации и изменения ряда настроек сервера, а также защита от сетевых атак. Работать с файлом можно через FTP, без непосредственного доступа к панели управления хостингом (которого у большинства веб-мастеров попросту нет).

Правильный файл htaccess для CMS WordPress обеспечивает:

  • Защиту и контроль безопасности ресурса:
    • Запрещает листинг директорий.
    • Блокирует программы и скрипты hacking tools.
    • Защищает от внедрения SQL-инъекций в запрос.
    • Ограничивает доступ к ключевым файлам конфигураций.
    • Закрывает прямой доступ к файлам xml, php, ini и др.
  • Оптимизацию производительности и скорости загрузки сайта благодаря:
    • Настройке gzip-сжатия.
    • Оптимальному коду mod_headers.
    • Возможности настройки кеширования.
  • Настройку перенаправлений (редиректов):
    • 301 – на зеркало www. с сайта или наоборот.
    • 302 – если документ временно перемещен.
    • 404 – страница не найдена.
    • Других (в том числе – сложных) редиректов.

Здесь: htaccess.txt можно скачать стандартный .htaccess для WordPress версий от 2.9 – 4.6 1. Такой файл, помещенный непосредственно в корневую папку сайта, уже содержит исходный код — все необходимые базовые настройки. Но мы не рекомендуем ограничиваться стандартными директивами. Воспользуйтесь нашими инструкциями, чтобы обеспечить должную защиту сайта и повысить его траст в глазах поисковых роботов.
Обратите внимание, что таким стандартным файлом можно воспользоваться для того, чтобы «откатить» настройки. Это может пригодиться в случае внесения некорректных изменений в актуальный действующий файл.

Пошаговая инструкция, или как создать .htaccess для WordPress

Для начала создаем в любом текстовом редакторе (Блокнот, Evernote или др.) файл с расширением .txt и называем его htaccess. Вы всегда можете скачать стандартный документ (ссылку на который найдете выше на этой странице), или создать пустой самостоятельно.

img_01

Затем заходим в файловый менеджер (для этих целей отлично подойдет Total Commander) и переименовываем только что созданный файл в .htaccess. Обратите внимание: обязательно нужно изменить расширение, в то время как имя документа остается пустым.

img_02

Сохраняем изменения и копируем в корневую директорию. Для этого придется воспользоваться FTP-клиентом (Filezilla, Total Commander или любой другой программой). Важно: поместите новый документ в той же папке, где уже лежит wp-config.php.

Обязательные правила

Чтобы настройки конфигурационного файла выполнялись адекватно, необходимо запомнить и соблюдать ряд правил к его оформлению:

  • Каждая новая директива прописывается с новой строки.
  • Чтобы закомментировать правило, необходимо в начале строки поставить #.
  • Закомментированное правило не работает. Эта строка служит примечанием для администратора или вебмастера,
    работающих с этим сайтом.
  • Модули параметров директив обязательно заключаются в секции.

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

Как обеспечить защиту сайта на WP

Закрыть все файлы

Правильный htaccess для WordPress позволяет ограничить сторонний доступ ко всем файлам и папкам, расположенным на сервере. Вот так, к примеру, можно закрыть файлы от открытия напрямую, через строку в браузере:
deny from all

Блокировать по IP

Хотите забанить конкретного пользователя? Заблокируйте его по адресу IP:

<Limit GET POST>
order allow,deny
deny from xx.xxx.xxx.xxx
deny from x2.xx2.xx2.xx2
allow from all
</Limit>

Где xx.xxx.xxx.xxx – это IP заблокированного пользователя, x2.xx2.xx2.xx2 – IP другого пользователя, и так до бесконечности.

Защита картинок

Уберечь картинки от парсинга можно с помощью использования следующей директивы:

RewriteEngine on
RewriteCond %{HTTP_REFERER} !^$
RewriteCond %{HTTP_REFERER} !^http://(www\.)?мой-сайт.рф/.*$ [NC]
RewriteRule\.(png|gif|jpg|jpeg)$ http://www. мой-сайт.рф /noimagehere.gif [R,L]

Таким образом вы не только защитите контент, но и значительно снизите нагрузку на сайт. А на ресурсе пользователя, который решил использовать ваши файлы, будет выводиться изображение с надписью «noimagehere»

Защита контента

Отдельная директива помогает защитить от стороннего доступа папку «wp-content». Для этого создайте новый специальный отдельный файл .htaccess в указанной папке и пропишите в нем:

Order deny,allow
Deny from all
<Files ~ ".(xml|css|jpe?g|png|gif|js)$">
Allow from all
</Files>

Защита файла .htaccess

Сами конфигурационные файлы тоже нуждается в защите. Чтобы обеспечить это, запретите сторонним лицам доступ ко всем документам, которые начинаются с букв «h», «t», «a»:

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

Оптимизация общей производительности

Чтобы ускорить загрузку сайта и при этом одновременно снизить нагрузку на хостинг, можно включить дополнительное кеширование браузера клиента:

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"

Настройка редиректов и перенаправлений

Простой редирект на новый url

Нужно настроить автоматическое перенаправление пользователя со страниц старого сайта на новые url? Для этого в файле .htaccess пропишите следующий код:

http://мой-сайт.рф/страница1.htm

или

http://мой-сайт.рф/

Склейка адресов с www и без

Если не выполнить слияние таких страниц, поисковый робот будет считать их дублями и понизит позиции в поисковой выдаче. Иначе говоря, сайт должен быть доступным только по одному адресу: с www или без. Добиться этого можно следующим образом:

Options +FollowSymLinks
RewriteEngine On
RewriteCond %{HTTP_HOST} ^мой-сайт\.рф$ [NC]
RewriteRule ^(.*)$ http://www.мой-сайт.рф/$1 [R=301,L]

Страница ошибки

Пользователь неправильно набрал адрес страницы, или на сайте что-то пошло не так? Такое бывает на любом ресурсе. Чтобы не терять пользователя, просто перенаправьте его на заранее подготовленную страницу. Здесь он получит объяснение причин произошедшего и увидит инструкции относительно дальнейшего поведения на сайте (если вы предусмотрите подобную возможность в рамках дизайна):

ErrorDocument 401 /401.html
ErrorDocument 403 /403.html
ErrorDocument 404 /404.html
ErrorDocument 500 /500.html

Теперь вы можете самостоятельно написать правильный htaccess для WordPress для ресурса. Не забудьте вместо «мой-сайт.рф» вставить доменное имя действующего сайта и да прибудет с вами сила.