Файл .htaccess – это конфигурационный файл, который позволяет выполнить много различных действий на вашем сайте. Рассмотрим некоторые полезные способы настройки .htaccess для сайта WordPress, чтобы эффективно использовать ресурсы сервера и улучшить безопасность.

Что такое .htaccess файл, зачем нужен?

Файл .htaccess является файлом конфигурации сервера. Он позволяет определять правила, которые применяет хостинг-сервер Apache для обслуживания вашего интернет-ресурса. В частности, WordPress изменяет .htaccess, чтобы иметь возможность обрабатывать постоянные ссылки. В этом файле можно переопределить настройки веб-сервера, чтобы повысить безопасность и производительность вашего сайта.

Имя файла .htaccess является сокращением от «Hypertext Access», а точка перед именем означает, что это скрытый файл. Вы не сможете увидеть его при просмотре файлов, если файловый менеджер не отображает скрытые файлы на вашем компьютере.

Редактируя файл с помощью правильных команд, вы можете добавлять или отключать дополнительные функции для защиты вашего сайта от спамеров, хакеров и других угроз. Некоторые из полезных команд включают:

  • переадресацию на другие страницы;
  • блокировку внешнего доступа к отдельным файлам и папкам;
  • защиту паролем содержимого сайта и входа в админ-панель;
  • закрытие доступа к сайту по IP-адресу;
  • предотвращение использования изображений на других ресурсах.

Файл .htaccess находится в корневом каталоге сайта WordPress. Чтобы его отредактировать необходимо подключиться к серверу при помощи FTP-клиента, например, FileZilla. Перед редактированием файла .htaccess рекомендуется скопировать его на локальный компьютер в качестве бекапа. Вы сможете использовать эту резервную копию для восстановления системы при необходимости.

шаблон 404 вордпресс

Код стандартного .htaccess файла вордпресс

В зависимости от процедуры установки WordPress, у вас может не быть файла .htaccess в корне сайта. Чтобы его создать, используйте текстовый редактор. Назовите файл .htaccess и загрузите его на сервер. Некоторые операционные системы, например, Windows, не позволят вам задать подобное имя файла. В этом случае сформируйте файл htaccess.txt, а после загрузки на сервер переименуйте его в .htaccess.

Код, который согласно кодексу WordPress должен находиться внутри файла:

# BEGIN WordPress
<IfModule mod_rewrite.c>
RewriteEngine On
RewriteBase /
RewriteRule ^index\.php$ - [L]
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule . /index.php [L]
</IfModule>
# END WordPress

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

Не рекомендуется добавлять или редактировать что-либо между строками # BEGIN WordPress и # END WordPress. Когда вы добавляете новые правила, включайте их выше или ниже приведенного кода.

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

Как закрыть доступ по IP в .htaccess

Файл .htaccess можно использовать для защиты области администрирования WordPress, ограничивая доступ только выбранным IP-адресам. Добавьте следующий код:

ErrorDocument 401 default
ErrorDocument 403 default
<Files wp-login.php>
Order deny,allow
Deny from all
Allow from ххх.ххх.ххх.хх localhost
</Files>

Замените значения ххх собственным IP-адресом, для выполнения этого правила IP должен быть постоянным. Если для доступа используется более одного IP, также пропишите их, аналогичным образом добавляя предпоследнюю строку. Первые две строки кода перенаправляют несанкционированные IP-адреса на страницу с ошибкой 404.

Если вы обнаружили слишком частые запросы на сайт с одного IP-адреса, возможно, это проявление действий злоумышленника. Вы можете предотвратить эти запросы, применяя блокировку по IP. Вставьте такой код в файл .htaccess:

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

Вместо ххх укажите IP-адрес, который требуется заблокировать.

Как защитить изображения от вставки на других ресурсах

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

Предотвратить несанкционированное использование картинок на своем сайте можно, если добавить в .htaccess этот код:

RewriteEngine on
RewriteCond %{HTTP_REFERER} !^$
RewriteCond %{HTTP_REFERER} !^http(s)?://(www\.)?site.ru [NC]
RewriteCond %{HTTP_REFERER} !^http(s)?://(www\.)?google.com [NC]
RewriteRule \.(jpg|jpeg|png|gif)$ – [NC,F,L]

Такой код позволяет отображать изображения только в том случае, если запрос отправляется с сайта site.ru или Google.com. Замените site.ru на доменное имя вашего сайта.

Настройка 301 редиректа wordpress

Применение переадресации с кодом 301 – это самый удобный для SEO способ информировать посетителей о том, что контент переместился в новое место. Чтобы правильно управлять 301 редиректом, допишите в файл .htaccess код для перенаправления пользователя на другую страницу:

Redirect 301/ http://www.site.ru/new-url

При переименовании категорий на сайте можно сначала указать старый URL и сделать с него редирект на новый URL:

Redirect 301/category/television/ http://www.site.ru/category/tv/

Переадресация также необходима между адресами вашего сайта с www и без него, поскольку поисковые системы считают эти URL разными. За основной адрес сайта может быть выбран только один из них, со второго необходимо сделать редирект на главный адрес. Для перенаправления на www.site.ru добавьте код:

Options +FollowSymLinks
RewriteEngine On
RewriteCond %{HTTP_HOST} ^sait\.ru$ [NC]
RewriteRule ^(.*)$ http://www.sait.ru/$1 [R=301,L]

Чтобы задать 301 редирект в обратном направлении, поменяйте местами URL-адреса в двух последних строках.

Как включить кеширование браузера правильно

С помощью кеширования вы можете указать браузеру, когда файлы сайта обычно изменяются, например, раз в месяц или каждую неделю. Это ускорит работу вашего сайта на стороне пользователя, поскольку браузер будет отправлять запросы на ваш сервер только после объявленного времени.

Когда файл понадобится снова, браузер извлечет его из своего локального кеша, а не будет запрашивать повторную загрузку с сервера. Это экономит трафик с вашего сайта и позволяет избежать ненужных HTTP-запросов при последующем просмотре страниц.

Установите дату истечения срока действия или максимальный период для статических ресурсов, таких как изображения, css-стили, js-скрипты, pdf, swf-файлы. После настройки кеширования сайт будет загружаться намного быстрее.

Включить кеширование браузера можно, если прописать в .htaccess следующий код:

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"