15 полезных .htaccess сниппета для сайта на WordPress
Если вы хотите существенно повысить уровень безопасности вашего сайта на WordPress, то вам не избежать конфигурации файла .htaccess. Это позволит не только уберечься от целого ряда хакерских атак, но и организовать перенаправления, а также решить задачи связанные с кэшем.
.htaccess — это конфигурационный файл, используемый веб-сервером Apache. Огромное число сайтов работают на Apache, гораздо меньшая часть на Nginx. В этой статье мы собрали несколько полезных сниппетов для файла .htaccess.
Создание файла .htaccess для WP
Ниже представлен код файла .htaccess обычной сборки WordPress. Подробное описание можно найти на странице Кодекса 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
1. Запрет доступа ко всем файлам .htaccess
Код представленный ниже, позволит запретить обращение к файлам .htaccess из браузера. Таким образом конфигурация вашего сервера будет скрыта от посторонних глаз.
# Denies access to all .htaccess files <Files ~ "^.*\.([Hh][Tt][Aa])"> Order Allow,Deny Deny from all Satisfy all </Files>
2. Защита конфигурации WP
В файле wp-config.php
содержится вся информация о конфигурации WP, включая логин и пароль от базы данных. Вы можете скрыть эти файлы от всех посторонних.
Уберите знак комментария со строки # Allow from xx.xx.xx.xxx
и вставьте IP адрес вместо xx.xx.xx.xxx
.
# Protects wp-config <Files wp-config.php> Order Allow,Deny # Allow from xx.xx.xx.xxx # Allow from yy.yy.yy.yyy Deny from all </Files>
3. Защита от XML-RPC DDoS атак
По умолчанию WordPress поддерживает расширение XML-RPC, которое позволяет организовать дистанционную публикацию статей. Отличная возможность, однако хакеры могут воспользоваться ею для организации DDoS атак.
Если вы не пользуетесь данной функцией, то лучше отключите её. Уберите знак комментария # Allow from xx.xx.xx.xxx
и пропишите IP адрес админа.
# Protects XML-RPC, prevents DDoS attack <FilesMatch "^(xmlrpc\.php)"> Order Deny,Allow # Allow from xx.xx.xx.xxx # Allow from yy.yy.yy.yyy Deny from all </FilesMatch>
4. Защита раздела администрирования
Также было бы неплохо закрыть админку от общего доступа. Только не забудьте оставить хоть один вызов “Allow” и прописать туда свой IP.
# Protects admin area by IP AuthUserFile /dev/null AuthGroupFile /dev/null AuthName "WordPress Admin Access Control" AuthType Basic <LIMIT GET> Order Deny,Allow Deny from all Allow from xx.xx.xx.xxx Allow from yy.yy.yy.yyy </LIMIT>
5. Скрываем каталоги файлов
В большинстве случаев сайты на WordPress поддерживают отображение списка файлов ваших каталогов. Сказать, что это “дыра” в безопасности — значит ничего не сказать.
Вот как это выглядит:
Исправляется данная ситуация одной командой. Теперь все кто захотят пошариться по файлам получат ошибку 403.
# Prevents directory listing Options -Indexes
6. Защита от перебора
Если у вас в WP включены человеко-понятные URL, то вычислить логин автора не составит большого труда. Полного перебора будет вполне достаточно.
Для того чтобы это исправить внесите следующий код в файл .htaccess.
# Prevents username enumeration RewriteCond %{QUERY_STRING} author=d RewriteRule ^ /? [L,R=301]
7. Блокировка спамеров и ботов
Если вы хотите запретить кому-то заходить на ваш сайт, то можете внести не желаемый IP адрес в файл .htaccess.
# Blocks spammers and bots <Limit GET POST> Order Allow,Deny Deny from xx.xx.xx.xxx Deny from yy.yy.yy.yyy </Limit> Allow from all
8. Предотвращение хотлинков
Ещё одна мера, которая позволит защититься от хотлинков.
# Prevents image hotlinking RewriteEngine on RewriteCond %{HTTP_REFERER} !^$ RewriteCond %{HTTP_REFERER} !^http(s)?://(www\.)?yourwebsite.com [NC] RewriteCond %{HTTP_REFERER} !^http(s)?://(www\.)?yourwebsite2.com [NC] RewriteRule \.(jpe?g?|png|gif|ico|pdf|flv|swf|gz)$ - [NC,F,L]
9. Запрет прямого доступа к файлам тем и плагинов
Прямые запросы к файлам, папкам плагинов и тем, может обернуться большими неприятностями. Следующий код это исправит.
# Restricts access to PHP files from plugin and theme directories RewriteCond %{REQUEST_URI} !^/wp-content/plugins/file/to/exclude\.php RewriteCond %{REQUEST_URI} !^/wp-content/plugins/directory/to/exclude/ RewriteRule wp-content/plugins/(.*\.php)$ - [R=404,L] RewriteCond %{REQUEST_URI} !^/wp-content/themes/file/to/exclude\.php RewriteCond %{REQUEST_URI} !^/wp-content/themes/directory/to/exclude/ RewriteRule wp-content/themes/(.*\.php)$ - [R=404,L]
10. Перенаправления
Вы можете с лёгкостью организовать перенаправление с одного URL на другой через записи в .htaccess.
# Permanent redirects Redirect 301 /oldurl1/ http://yoursite.com/newurl1 Redirect 301 /oldurl2/ http://yoursite.com/newurl2
11. Страница “профилактики”
Во время каких-то профилактических работ на сайте неплохо организовать перенаправление пользователей на специальную страницу (к примеру maintenance.html
).
# Redirects to maintenance page <IfModule mod_rewrite.c> RewriteEngine on RewriteCond %{REMOTE_ADDR} !^123\.456\.789\.000 RewriteCond %{REQUEST_URI} !/maintenance.html$ [NC] RewriteCond %{REQUEST_URI} !\.(jpe?g?|png|gif) [NC] RewriteRule .* /maintenance.html [R=503,L] </IfModule>
12. Запрет доступа к движку WP
В каталоге /wp-includes/
хранится весь базовый код движка WordPress. Для общей безопасности лучше закрыть доступ к этой папке.
# Blocks all wp-includes folders and files <IfModule mod_rewrite.c> RewriteEngine On RewriteBase / RewriteRule ^wp-admin/includes/ - [F,L] RewriteRule !^wp-includes/ - [S=3] RewriteRule ^wp-includes/[^/]+\.php$ - [F,L] RewriteRule ^wp-includes/js/tinymce/langs/.+\.php - [F,L] RewriteRule ^wp-includes/theme-compat/ - [F,L] </IfModule>
13. Защита от XSS
Защитить сайт на WP от XSS атак можно следующим образом:
# Blocks some XSS attacks <IfModule mod_rewrite.c> RewriteCond %{QUERY_STRING} (\|%3E) [NC,OR] RewriteCond %{QUERY_STRING} GLOBALS(=|\[|\%[0-9A-Z]{0,2}) [OR] RewriteCond %{QUERY_STRING} _REQUEST(=|\[|\%[0-9A-Z]{0,2}) RewriteRule .* index.php [F,L] </IfModule>
14. Активация кэша браузера
Следующий сниппет заставит пользовательский браузер сохранить загруженные изображения в кэш. При последующих запросах картинки будут браться из этого резервного хранилища.
# Enables browser caching <IfModule mod_expires.c> ExpiresActive On ExpiresByType image/jpg "access 1 year" ExpiresByType image/jpeg "access 1 year" ExpiresByType image/gif "access 1 year" ExpiresByType image/png "access 1 year" ExpiresByType text/css "access 1 month" ExpiresByType application/pdf "access 1 month" ExpiresByType text/x-javascript "access 1 month" ExpiresByType application/x-shockwave-flash "access 1 month" ExpiresByType image/x-icon "access 1 year" ExpiresDefault "access 2 days" </IfModule>
15. Настройка страницы ошибки
В файле .htaccess можно указать путь к файлам, которые отобразятся пользователю при возникновении ошибок (к примеру custom-403.html
, custom-404.html
).
Данный приём актуален для HTTP ошибок со статусом (4XX и 5XX).
# Sets up custom error pages ErrorDocument 403 /custom-403.html ErrorDocument 404 /custom-404.html
Данный урок подготовлен для вас командой сайта ruseller.com
Источник урока: http://www.hongkiat.com/blog/useful-htaccess-snippets-for-wordpress/
Перевел: Станислав Протасевич
Урок создан: 3 Мая 2017
Просмотров: 13655
Правила перепечатки
5 последних уроков рубрики "Для сайта"
-
Эффекты блочного раскрытия
Сегодня мы хотели бы поделиться несколькими идеями касающегося эффекта блочного раскрытия, которую вы можете использовать для своих проектов.
-
20 бесплатных тем для WordPress в стиле Material Design
Material Design — это набирающий обороты тренд от Google. В данной подборке собраны бесплатные темы для WordPress, выполненные в этом популярном стиле.
-
20 сайтов с креативным MouseOver эффектом
Эффекты на то и существуют чтобы впечатлять наших посетителей. В этой подборке собрано несколько десятков ресурсов, чьи создатели очень постарались впечатлить своих посетителей.
-
45+ бесплатных материалов для веб дизайнеров за август 2016
Под конец месяца предлагаем ознакомиться с набором бесплатных материалов для веб дизайнеров за прошедший месяц.
-
Бесплатка: PSD шабон Modus Versus
Вашему вниманию предлагаем PSD шаблон с множеством элементов.