Файл .htaccess является основным конфигурационным файлом уровня каталога, который позволяет децентрализовать управление конфигурацией сервера. Он всегда добавляется в корневой каталог и может отменить много других настроек конфигурации, включая глобальную конфигурацию сервера, тип контента и кодировку.
.htaccess может использоваться для множества хаков, которые защитят и улучшат функциональность блогов на WordPress. Ниже приведён список топ 20 htaccess хаков, которые улучшат и защитят от взлома ваши сайты и блоги.
Некоторые из этих правил позволяют блокировать доступ к сайту владельцам определённых IP адресов, переадресовывать посетителей на страницу технического обслуживания, когда производится редизайн или модификация данного сайта, блокировать доступ к разделу администрирования wordpress для определённых IP адресов и многое другое.
1. Чёрный список IP адресов нежелательных пользователей и ботов
Apache может использоваться, чтобы оградить ваш сайт от нежелательных людей и ботов. Этот код позволяет посещать данный сайт всем пользователям, кроме владельцев этих IP адресов.
1 2 3 4 5 6 7 8 |
<Limit GET POST PUT> order allow,deny allow from all deny from 123.456.789 deny from 93.121.788 deny from 223.956.789 deny from 128.456.780 </LIMIT> |
Источник: smashingmagazine.com
2. Переадресация постоянных ссылок вида «день и название» на /%postname%/
Первое, что необходимо сделать это войти на страницу администрирования WordPress, перейти к Settings > Permalinks и выбрать custom. Заполните поле строкой /%postname%/.
Ваши постоянные ссылки теперь будут выглядеть примерно так:
1 |
Теперь нам нужно перенаправить все обратные ссылки, использующие старую структуру постоянных ссылок, на ссылки с новой структурой. Чтобы это сделать, вы должны будете отредактировать .htaccess файл, расположенный в корневом каталоге WordPress.
Будьте внимательны при редактировании .htaccess: всегда заранее создавайте резервную копию!
Вставьте следующую строку в свой .htaccess:
1 |
RedirectMatch 301 /([0-9]+)/([0-9]+)/([0-9]+)/(.*)$ |
Источник:
3. Переадресация посетителей на страницу обслуживания
1 2 3 4 |
RewriteEngine on RewriteCond %{REQUEST_URI} !/maintenance.html$ RewriteCond %{REMOTE_ADDR} !^123\.123\.123\.123 RewriteRule $ /maintenance.html [R=302,L] |
Источник:
4. Переадресация www на не-www или наоборот
1 2 3 4 |
RewriteEngine On RewriteBase / RewriteCond %{HTTP_HOST} ^www.yourblogname.com [NC] RewriteRule ^(.*)$ http://yourblogname.com/$1 [L,R=301] |
1 2 3 4 |
RewriteEngine On RewriteBase / RewriteCond %{HTTP_HOST} ^yourblogname.com [NC] RewriteRule ^(.*)$ http://www.yourblogname.com/$1 [L,R=301] |
5. Установка правильного url вручную при помощи .htaccess
1 2 3 4 |
# Установка правильного url RewriteEngine On RewriteCond %{HTTP_HOST} ^yourblogname\.com$ [NC] RewriteRule ^(.*)$ http://www.yourblogname.com/$1 [R=301,L] |
6. Переадресация WordPress лент на FeedBurner
Отличный хак переадресует с на http://feeds.feedburner.com/yoursite.
1 2 3 4 5 6 7 |
# временная переадресация лент контента wordpress к feedburner <IfModule mod_rewrite.c> RewriteEngine on RewriteCond %{HTTP_USER_AGENT} !FeedBurner [NC] RewriteCond %{HTTP_USER_AGENT} !FeedValidator [NC] RewriteRule ^feed/?([_0-9a-z-]+)?/?$ http://feeds.feedburner.com/webanddesigners [R=302,NC,L] </IfModule> |
Источник: perishablepress.com
7. Переадресация WordPress лент комментариев на FeedBurner
1 2 3 4 5 6 7 |
# временная переадресация лент комментариев wordpress к feedburner <IfModule mod_rewrite.c> RewriteEngine on RewriteCond %{HTTP_USER_AGENT} !FeedBurner [NC] RewriteCond %{HTTP_USER_AGENT} !FeedValidator [NC] RewriteRule ^comments/feed/?([_0-9a-z-]+)?/?$ http://feeds.feedburner.com/webanddesigners [R=302,NC,L] </IfModule> |
Источник: perishablepress.com
8. SEO-благоприятная 301 переадресация
Воспользуйтесь следующим кодом, чтобы переадресовать пользователя на определённую страницу, не отображая старомодные страницы ошибок.
1 2 |
#SEO благоприятная 301 переадресация Redirect 301 /abc/file.html http://www.yourblogname.com/def/file.html |
9. Кэширование с htaccess
Следующий htaccess код не поможет при первой загрузке страницы, но он значительно ускорит последующие загрузки, отправляя статус 304, если требуемые элементы не были изменены.
1 2 3 |
FileETag MTime Size ExpiresActive on ExpiresDefault "access plus x seconds" |
10. Разрешите доступ к директории wp-admin только своему IP адресу
Замените xx.xx.xx.xx на свой IP адрес, что позволит только вашему IP получить доступ к директории wp-admin.
1 2 3 4 5 6 7 8 9 |
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.xx </LIMIT> |
11. Запрет комментирования, при отсутствии referrer у запроса
Простой хак для защиты от спама в блоге.
1 2 3 4 5 6 |
RewriteEngine On RewriteCond %{REQUEST_METHOD} POST RewriteCond %{REQUEST_URI} .wp-comments-post\.php* RewriteCond %{HTTP_REFERER} !.*yourblog.com.* [OR] RewriteCond %{HTTP_USER_AGENT} ^$ RewriteRule (.*) ^http://%{REMOTE_ADDR}/$ [R=301,L] |
Источник:
12. Самый простой способ забанить спамеров WordPress
Чтобы заблокировать доступ к вашему блогу для определённого IP адреса в .htaccess файл нужно ввести следующий код и заменить указанный здесь IP на тот, который вы хотите забанить.
1 2 3 4 5 6 |
## USER IP BANNING <Limit GET POST> order allow,deny deny from 200.49.176.139 allow from all </Limit> |
13. Переадресация посетителей на страницу технического обслуживания
1 2 3 4 |
RewriteEngine on RewriteCond %{REQUEST_URI} !/maintenance.html$ RewriteCond %{REMOTE_ADDR} !^123\.123\.123\.123 RewriteRule $ /maintenance.html [R=302,L] |
Источник:
14. Запрет доступа к файлу wp-config.php.
Файл wp-config.php в WordPress включает всю важную информацию, такую, как название базы данных.
1 2 3 4 5 |
# защита wpconfig.php <files wp-config.php> order allow,deny deny from all </files> |
Источник:
15. Ограничение размера загрузок файлов до 20MB
Чтобы ограничить размер загрузки файла в wordpress до 20 Мб, используйте следующий код.
1 2 |
# ограничить загрузки файлов до 10mb LimitRequestBody 10240000 |
16. Назначение своих страниц для HTTP ошибок
Если вы хотите переадресовывать своих посетителей каждый раз, когда они попадают на 404 HTTP ошибку, используйте этот код:
1 2 3 4 5 |
# нестандартные страницы ошибок ErrorDocument 401 /err/401.php ErrorDocument 403 /err/403.php ErrorDocument 404 /err/404.php ErrorDocument 500 /err/500.php |
Источник: vortexmind.net
17. Добавление слэша в URL
Чтобы добавить слэш в конец своего URL, добавьте следующий код в файл .htaccess.
1 2 3 4 5 6 |
#добавление завершающего слэша RewriteBase / RewriteCond %{REQUEST_FILENAME} !-f RewriteCond %{REQUEST_URI} !# RewriteCond %{REQUEST_URI} !(.*)/$ RewriteRule ^(.*)$ [L,R=301] |
18. Каталоги, защищённые паролем
Простой способ защитить паролем директорию блога
1 2 3 4 |
AuthType Basic AuthName "restricted area" AuthUserFile /usr/local/var/www/html/.htpasses require valid-user |
19. Директива CheckSpelling
Эта директива может быть полезна для автоматического исправления простых орфографических ошибок в URL
1 2 3 |
<IfModule mod_speling.c> CheckSpelling On </IfModule> |
Источник: vortexmind.net
20. Быстрая защита файлов плагинов
Файлы плагинов WordPress могут иметь бреши в защите, что позволит хакерам получить доступ к вашему сайту. Для предотвращения того, чтобы другие имели прямой доступ к файлам плагинов, используйте следующий код.
1 2 3 4 |
<Files ~ "\.(js|css)$"> order allow,deny allow from all </Files> |
Выводы
Использование этих htaccess хаков оказалось полезным для защиты вашего блога от проникновения спамеров и сторонних программ. Всё это поможет вам не только оградить свой сайт от хакеров, но также улучшить функциональность и увеличить скорость вашего блога/сайта. Если вы знаете какие-либо полезные хаки, напишите о них в комментариях.