Приветствую вас на блоге inetsovety.ru. Сегодня я вам расскажу о настройке конфигурационного файла .htaccess для сайта на WordPress. Файл позволяет переопределить настройки веб-сервера, подключив дополнительный функционал.
Например, запретить доступ к некоторым файлам, настроить перенаправление для страниц сайта, запретить вставку и подгрузку картинок с вашего сервера на чужом сайте, заблокировать доступ к сайту с определенных IP адресов или же наоборот разрешить, настроить кэширование для ускорения загрузки сайта.
А теперь обо всем этом по порядку с кодами реализации. Файл .htaccess может находиться корневом каталоге сайта или в какой-либо из папок, находящихся на сервере. Если .htaccess находится в корневом каталоге сайта, тогда его действие распространяется на все папки и файлы на сервере. Если же .htaccess находится в отдельной папке (например wp-content), его действие распространяется на все файлы из этого каталога.
Ошибки в кодах, которые добавляются в файл .htaccess могут привести потере работоспособности сайта. Перед началом внесения каких-либо настроек в этот файл создайте его резервную копию.
Что делать, если Вы не обнаружили в корне сайта файла .htaccess? Взять готовый файл, который я дам для скачивания в конце статьи или создать свой.
Защита файлов .htaccess и wp-config.php
Чтобы взломщики не смогли получить доступ к имени и паролю базы данных, которые хранятся в файле wpconfig.php, нужно запретить доступ к этому файлу.Тоже самое нужно сделать и из файлом .htaccess. Если злоумышленники получат к нему доступ, они могут настроить перенаправление всех посетителей вашего сайта на свой.
Добавление следующих строчек кода запретит доступ к этим файла вне FTP и файлового менеджера хостинга.
# защищаем wpconfig.php <files wp-config.php> order allow,deny deny from all </files> #защищаем htaccess <Files .htaccess> order allow,deny deny from all </Files>
Эти коды лучше добавлять ближе к концу.
Ускорение загрузки сайта включением Gzip сжатия файлов и кэша браузера
Описание кодов, которые включают кэш браузера и Gzip сжатие, я уже приводила в этой статье https://inetsovety.ru/kak-proverit-skorost-zagruzki-sayta/, сейчас я их продублирую без комментариев:
# Включаем кэш в браузерах посетителей FileETag MTime Size <ifmodule mod_expires.c> <filesmatch ".(jpg|jpeg|gif|png|ico|css|js)$"> ExpiresActive on ExpiresDefault "access plus 1 year" </filesmatch> </ifmodule> # Сжатие данных Gzip <IfModule mod_deflate.c> AddOutputFilterByType DEFLATE text/html text/plain text/xml application/xml application/xhtml+xml text/javascript text/css application/x-javascript BrowserMatch ^Mozilla/4 gzip-only-text/html BrowserMatch ^Mozilla/4.0[678] no-gzip BrowserMatch bMSIE !no-gzip !gzip-only-text/html <ifmodule mod_gzip.c> mod_gzip_on Yes mod_gzip_item_include file .js$ mod_gzip_item_include file .css$ </ifmodule> </IfModule>
Перенаправление с дублированных страниц
В статье о дублях страниц, которые приводят к фильтру от Гугла был подобный код:
<IfModule mod_rewrite.c> RewriteEngine On RewriteBase / RewriteCond %{QUERY_STRING} ^replytocom= [NC] RewriteRule (.*) $1? [R=301,L] RewriteCond %{QUERY_STRING} ^srp= [NC] RewriteRule (.*) $1? [R=301,L] RewriteRule (.+)/feed /$1 [R=301,L] RewriteRule (.+)/comment-page /$1 [R=301,L] RewriteRule (.+)/trackback /$1 [R=301,L] RewriteRule (.+)/comments /$1 [R=301,L] RewriteRule (.+)/attachment /$1 [R=301,L] RewriteCond %{QUERY_STRING} ^attachment_id= [NC] RewriteRule (.*) $1? [R=301,L] RewriteRule ^index.php$ - [L] RewriteCond %{REQUEST_FILENAME} !-f RewriteCond %{REQUEST_FILENAME} !-d RewriteRule . /index.php [L] </IfModule>
Благодаря ему посетители вашего сайта не будут видеть страниц с хвостами replytocom, feed, comment-page, attachment, comments, потому что их при попытке зайти на такую страницу их автоматически перенаправит с дубля на оригинал.
Ограничение доступа к сайту с определенных IP адресов
Если Ваш сайт пытаются положить, создавая множественные запросы к его страницам с определенного IP адреса, мы может запретить доступ к сайту с этого IP. В файле access.log, который должен находиться в корневой папке сайта, находите айпи вломщика и добавляете его в черный список. Если файла access.log Вы не нашли, спросите у службы поддержки хостера, как подключить сохранение журнала доступа к веб-серверу. Для этого добавляем в файл htaccess следующий код:
Order Allow,Deny Allow from All Deny from 95.181.178.62 95.181.178.61 Deny from 95.181.178.
В примере выше показано, как заблокировать два айпи, прописав их вот таким образом Deny from 95.181.178.62 95.181.178.61. Или же можно заблокировать целый диапазон IP, стерев цифры после третьей точки: Deny from 95.181.178.
Смотрите внимательно кого Вы блокируете. Если по ошибке внесете в этот список айпи робота одной из поисковых систем, в результате получите не только не добавление новых страниц в индекс, а и выпадение старых страниц него. Узнать информацию о айпи можно по ссылке
Владельцы сайтов, у которых неизменный статический айпи адрес для доступа в интернет, могут обезопасить админку от взлома, разрешив доступ в нее с одного единственного айпи. Код реализации этой защиты смотрите по ссылке.
Еще в начале статьи я упомянула о защите изображений, которые воры контента копируют вместе с текстом статьи, а потом при открытии вашей статьи на чужом сайте, картинки загружаются с вашего хостинга.
RewriteEngine on RewriteCond %{HTTP_REFERER} !^$ RewriteCond %{HTTP_REFERER} !^http://(www.)?ваш-сайт.ru/.*$ [NC] RewriteRule.(png|gif|jpg|jpeg)$ http://www.ваш-сайт.ru/imgsecurity.jpeg [R,L]
В этом коде поменяйте ваш-сайт.ru на адрес вашего сайта, а по этому адресу http://www.ваш-сайт.ru/imgsecurity.jpeg укажите путь к картинке, которая будет грузиться вместо изображения. Что написать на этой картинке придумайте сами
Для своих сайтов я не использую больше никаких команд. Если со временем появится что-то еще я обязательно напишу в этой статье.
Вот ссылка на скачивание файла .htaccess
Напоминаю еще раз. Будьте осторожны с редактированием этого файла, одно не правильно движение и ваш сайт перестанет работать.
Жду ваших дополнений в комментариях.