15 полезных фрагментов .htaccess для вашего сайта WordPress
Иметь хорошо настроенный файл .htaccess имеет решающее значение, если вы хотите повысить безопасность а также уменьшить уязвимости на вашем сайте WordPress. Обычно основная цель создания пользовательский файл .htaccess предотвращает взлом вашего сайта, но это также отличный способ обрабатывать перенаправления и управлять задачами, связанными с кэшем.
.htaccess - это конфигурационный файл используется на веб-серверах Apache. Большинство сайтов WordPress работать на сервере Apache, хотя небольшая часть работает на Nginx. В этой статье вы можете найти коллекция фрагментов кода .htaccess, большинство из которых вы можете использовать для защиты вашего сайта, а остальные реализуют другие полезные функции.
Не забудь создайте резервную копию файла .htaccess прежде чем редактировать его, чтобы вы всегда могли вернуться к предыдущей версии если что-то пойдет не так.
И, если вы не хотите прикасаться к файлам конфигурации, я рекомендую вам BulletProof Security плагин, который является самым надежным (и, вероятно, самый старый) бесплатный плагин безопасности .htaccess в продаже.
Создайте WP по умолчанию .htaccess
.htaccess работает на для каждого каталога Это означает, что каждый каталог может иметь свой собственный файл .htaccess. Может случиться так, что ваш сайт WordPress еще не имеет файла .htaccess. Если вы не нашли файл .htaccess в своем корневом каталоге создать пустой текстовый файл и назовите это .Htaccess
.
Ниже вы можете найти по умолчанию .htaccess WordPress использует. Всякий раз, когда вам нужен этот код, вы можете быстро найти его в Кодексе WordPress. Обратите внимание, что для WP Multisite существует другой .htaccess.
# НАЧАТЬ WordPressRewriteEngine On RewriteBase / RewriteRule ^ index \ .php $ - [L] RewriteCond% REQUEST_FILENAME! -F RewriteCond% REQUEST_FILENAME! -D RewriteRule. /index.php [L] # END WordPress
Строки, начинающиеся с #
комментарии. Не редактировать ничего между линиями # НАЧАТЬ WordPress
а также # END WordPress
. Добавьте ваши собственные .htaccess правила ниже этих правил по умолчанию.
Все фрагменты кода вы можете найти в этой статье перейти в основной файл .htaccess находится в вашем корневом каталоге.
1. Запретить доступ ко всем файлам .htaccess.
Код ниже отказывает в доступе ко всем файлам .htaccess, которые вы установили в вашем WordPress. Таким образом, вы можете помешать людям видеть ваши конфигурации веб-сервера.
# Запрещает доступ ко всем файлам .htaccessЗаказать Разрешить, Запретить Запретить от всех Удовлетворить всех
2. Защитите свою конфигурацию WP
WP-config.php
файл содержит все ваши конфигурации WP, включая вашу базу данных логин и пароль. Вы можете отрицать это от всех или разрешить админам доступ к нему.
Если вы выбираете последний закомментируйте # Разрешить из xx.xx.xx.xxx
линия (удалить #
с начала строки) и введите админский IP-адрес на месте xx.xx.xx.xxx
.
# Защищает wp-configЗаказать Разрешить, Запретить # Разрешить от xx.xx.xx.xxx # Разрешить от yy.yy.yy.yyy Запретить от всех
3. Предотвратить DDoS-атаку XML-RPC
WordPress поддерживает XML-RPC по умолчанию, который является интерфейс, который делает удаленную публикацию возможный. Однако, хотя это отличная функция, она также является одной из самых больших уязвимостей в безопасности WP, поскольку хакеры могут использовать его для DDoS-атак.
Если вы не хотите использовать эту функцию, лучше просто отключи это. Как и раньше, вы можете добавить исключения, комментируя # Разрешить из xx.xx.xx.xxx
линия и добавление IP-адресов ваших администраторов.
# Защищает XML-RPC, предотвращает DDoS-атакуЗаказать Отклонить, Разрешить # Разрешить от xx.xx.xx.xxx # Разрешить от yy.yy.yy.yyy Запретить от всех
4. Защитите вашу админку
Это также хорошая идея защитить админку предоставляя доступ только администраторам. Здесь не забудьте добавить хотя бы один “Разрешать” исключение иначе вы не сможете получить доступ к вашему администратору вообще.
# Защищает область администратора с помощью IP AuthUserFile / dev / null AuthGroupFile / dev / null AuthName «Контроль доступа администратора WordPress» AuthType BasicЗаказать Отклонить, Разрешить Запретить от всех Разрешить от xx.xx.xx.xxx Разрешить от yy.yy.yy.yyy
5. Запретить список каталогов
Большинство сайтов WordPress не отключают список каталогов, что означает, что каждый может просматривать их папки и файлы, включая медиафайлы и файлы плагинов. Нечего и говорить, что это огромная уязвимость безопасности.
Ниже вы можете увидеть, как типичный список каталогов WordPress выглядит.
К счастью, вам просто нужно одна строка кода чтобы заблокировать эту функцию. Этот фрагмент кода будет вернуть сообщение об ошибке 403 любому, кто хочет получить доступ к вашим каталогам.
# Предотвращает распечатку каталога Опции -Indexes
6. Запретить перечисление имени пользователя
Если постоянные ссылки WP включены, это довольно легко перечислить имена пользователей используя авторские архивы. Выявленные имена пользователей (включая имя администратора) могут быть использованы в атаки грубой силы.
Вставьте приведенный ниже код в ваш файл .htaccess, чтобы предотвратить перечисление имени пользователя.
# Предотвращает перечисление имени пользователя RewriteCond% QUERY_STRING author = d RewriteRule ^ /? [L, R = 301]
7. Блокировать спаммеров и ботов
Иногда вы можете захотеть ограничить доступ с определенных IP-адресов. Этот фрагмент кода предоставляет простой способ заблокировать спамеров и ботов, которых вы уже знаете.
# Блокирует спамеров и ботовЗаказать Разрешить, Запретить Запретить от xx.xx.xx.xxx Запретить от yy.yy.yy.yyy Разрешить от всех
8. Запретить хотлинкинг изображений
Хотя это не угроза безопасности, горячая ссылка на изображение все еще раздражающая вещь Люди не только использовать ваши изображения без вашего разрешения но они даже делают это за ваш счет. С помощью этих нескольких строк кода вы можете защитить свой сайт от хотлинкинга изображений.
# Предотвращает горячую ссылку на изображение RewriteEngine на 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. Ограничить прямой доступ к PHP-файлам плагинов и тем
Это может быть опасно, если кто-то напрямую вызывает ваш плагин и файлы тем, происходит ли это случайно или злоумышленником. Этот фрагмент кода исходит от компании по обеспечению безопасности сайта Acunetix; Вы можете прочитать больше об этой уязвимости в их блоге.
# Ограничивает доступ к файлам PHP из каталогов плагинов и тем 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. Установите постоянные перенаправления
Вы можете легко обрабатывать постоянные перенаправления с .htaccess. Сначала вы должны добавить старый URL, затем следуйте новый URL которая указывает на страницу, на которую вы хотите перенаправить пользователя.
# Постоянные перенаправления Redirect 301 / oldurl1 / http://yoursite.com/newurl1 Redirect 301 / oldurl2 / http://yoursite.com/newurl2
11. Отправить посетителей на страницу обслуживания
Мы писали об этой технике подробно здесь. Тебе необходимо отдельная страница обслуживания (maintenance.html
в этом примере) для этого правила .htaccess работать. Этот код ставит ваш сайт WordPress в режим обслуживания.
# Перенаправляет на страницу обслуживанияRewriteEngine в 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]
12. Ограничить все доступ к WP включает
/ WP-включает /
папка содержит основные файлы WordPress которые необходимы для работы CMS. Здесь нет контента, плагинов, тем или чего-либо еще, к чему пользователь может захотеть получить доступ. Поэтому для усиления безопасности лучше всего ограничить доступ к нему.
# Блокирует все wp-файлы и папки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]
13. Блокировать межсайтовый скриптинг (XSS)
Следующий фрагмент кода от WP Mix защищает ваш сайт от некоторые распространенные XSS-атаки, а именно инъекции скрипта и попытки изменить глобальные переменные и переменные запроса.
# Блокирует некоторые атаки XSSRewriteCond% 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]
14. Включить кеширование в браузере
Как я упоминал ранее, .htaccess не только хорош из соображений безопасности и перенаправлений, но также может помочь вам управлять кешем. Фрагмент кода ниже взят из элегантных тем и делает возможным кэширование в браузере позволяя посетителям сохранить определенные виды файлов, так что в следующий раз, когда они посещают, им не нужно загружать их снова.
# Включает кеширование в браузереExpiresActive On ExpiresByType image / jpg "Доступ 1 год" ExpiresByType image / jpeg "Доступ 1 год" ExpiresByType image / gif "Доступ 1 год" ExpiresByType image / png "Доступ 1 год" ExpiresByType text / css "Доступ 1 месяц" Приложение ExpiresByType / pdf "доступ 1 месяц" ExpiresByType text / x-javascript "доступ 1 месяц" приложение ExpiresByType / x-shockwave-flash "доступ 1 месяц" ExpiresByType image / x-icon "доступ 1 год" ExpiresDefault "доступ 2 дня"
15. Настройте пользовательские страницы ошибок
Вы можете использовать .htaccess для настройки пользовательских страниц ошибок на вашем сайте WordPress. Чтобы этот метод работал, вам также нужно создать пользовательские страницы ошибок (заказ 403.html
, заказ 404.html
в примере) и загрузить их в вашу корневую папку.
Вы можете настроить пользовательскую страницу ошибок для любой код ошибки HTTP (Коды состояния 4XX и 5XX) вы хотите.
# Устанавливает пользовательские страницы ошибок ErrorDocument 403 /custom-403.html ErrorDocument 404 /custom-404.html