Правильный htaccess для WordPress

Воскресенье, 11 Октябрь 2015 14:30 Автор 
Оцените материал
(1 Голосовать)

Файл .htaccess позволяет задавать дополнительные настройки для работы веб-сервера, такие как: редирект страниц, доступ к папкам и файлам, защита сайта от спама и другие. В данной статье рассматривается конфигурация файла применительно к системе управления WordPress.

Основной файл .htaccess расположен в корневой директории сайта на веб-сервере. Найти его будет не трудно, иногда файл по умолчанию назван как текстовый и имеет вид htaccess.txt - в таком случае его нужно просто переименовать в .htaccess, оставив его без расширения.

По умолчанию для системы WordPress внутреннее содержимое файла .htaccess имеет следующий вид:

# 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

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

Рассмотри наиболее интересные и необходимые функции, которые представляют интерес при работе с сайтом.

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

с www на без www в адресе сайта.

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

и наоборот

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

вместо name нужно подставить конкретное имя домена, зону тоже нужно указывать свою, в данном примере это зона .ru

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

AddDefaultCharset UTF-8

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

<Files .htaccess>
 order allow,deny
 deny from all
 </Files>

Защита файла wp-config.php

<Files wp-config.php>
 order allow,deny
 deny from all
 </Files>

 Запрет доступа по IP адресам

<Limit GET POST>
order allow,deny
deny from 192.168.0.1
deny from 192.168.0.2
allow from all
</Limit>

 ip-адреса, разумеется, нужно указывать конкретные :)

Защита от спама

Если вы используете комментарии на сайте, то можно установить дополнительную защиту, чтобы помешать спам-ботам обращаться напрямую к файлу wp-comments-post.php.

<IfModule mod_rewrite.c>
RewriteEngine On
RewriteCond %{REQUEST_METHOD} POST
RewriteCond %{REQUEST_URI} .wp-comments-post\.php*
RewriteCond %{HTTP_REFERER} !.*name.ru.* [OR]
RewriteCond %{HTTP_USER_AGENT} ^$
RewriteRule (.*) http://%{REMOTE_ADDR}/$ [R=301,L]
</IfModule>

name.ru - это имя вашего домена

Перенаправление страниц ошибок

Можно подготовить свои заранее подготовленные и оформленные в нужном стиле страницы ошибок и сделать перенаправление на них в случае возникновения таких ошибок

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

 Дополнительные файлы .htaccess

Файл .htaccess может располагаться и во вложенных папках! В таком случае, прописанные директивы будут относится к файлам внутри этих папок. По такой схеме можно запретить доступ к конкретным файлам. Например, можно создать пустой файл .htaccess внутри папок wp-content и wp-includes. Теперь можно запретить доступ к файлам по их расширениям:

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

Можно запретить доступ к файлам скриптов и стилей:

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

Используйте необходимые настройки и защищайте свои сайты, удачи!

Последнее изменение Воскресенье, 11 Октябрь 2015 16:05
Stanislav

Master's degree

Сайт: skopil.ru
Авторизуйтесь, чтобы получить возможность оставлять комментарии