Для корректной работы вашего сайта на CMS WordPress обязательно необходим такой файл как .htaccess.
Что это за зверь и зачем он нужен на сайте? Этот файл не входит в комплект поставки вордпресса наверное потому, что каждый его настраивает сам, но существуют общие, и я б сказал, важные, необходимые, общие настройки файла htaccess для WordPress.
htaccess в первую очередь призван защитить ваш сайт от сетевых атак, а также он позволяет модифицировать некоторые настройки сервера, на котором расположен ваш сайт, не заходя в панель управления хостинга для внесения в режим работы сервера. Сам файл должен располагаться на вашем хостинге в корневой директории. Кстати работать с ним лучше по FTP.
Файл htaccess позволяет:
- полностью или частично заблокировать сайт
- блокировать доступ по IP
- блокировать спам
- настроить редирект 301 (перенаправление с www на без www)
- настроить редирект — 302 (временно перемещен)
- настроить редирект — 404 (файл не найден)
- управлять статическими данными
- увеличить скорость загрузки вашего сайта
Создание файла 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
Кстати стандартный файл .htaccess для WordPress можно скачать здесь
После добавления этой записи можно переходить к дополнительным настройкам, если необходимо, они осуществляются добавлением в него новых функций, команд.
Защита файла .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 xxx.xxx.xxx.xxx deny from yyy.yyy.yyy.yyy allow from all </Limit>
*где ххх и yyy — ip адреса злодеев
Дополнительная защита сайта от спама
Некоторые спам-боты обращаются к файлу wp-comments-post.php напрямую, а этот файл отвечает за комментарии на вашем. Но можно отловить такие запросы проверяя все обращения на наличие REFERER, ибо у обычных посетителей он будет, а спам-боты как правило им обделены. (для справки: Referer (HTTP referer) — в протоколе HTTP один из заголовков запроса клиента. Содержит URL источника запроса. Если перейти с одной страницы на другую, referer будет содержать адрес первой страницы. Часто на HTTP-сервере устанавливается программное обеспечение, анализирующее referer и извлекающее из него различную информацию. Так, например, владелец веб-сайта получает возможность узнать, по каким поисковым запросам, как часто и на какие именно страницы попадают люди. )
<IfModule mod_rewrite.c> RewriteEngine On RewriteCond %{REQUEST_METHOD} POST RewriteCond %{REQUEST_URI} .wp-comments-post\.php* RewriteCond %{HTTP_REFERER} !.*yourdomain.com.* [OR] RewriteCond %{HTTP_USER_AGENT} ^$ RewriteRule (.*) http://%{REMOTE_ADDR}/$ [R=301,L] </IfModule>
Настроить перенаправление с www на без www — редирект 301
Это необходимо сделать. Зачастую многие игнорируют этот параметр.
Options +FollowSymLinks RewriteEngine On RewriteCond %{HTTP_HOST} ^www.saaait\.ru$ [NC] RewriteRule ^(.*)$ http://saaait.ru/$1 [R=301,L]
Настроить перенаправление с без www на www — редирект 301
Options +FollowSymLinks RewriteEngine On RewriteCond %{HTTP_HOST} ^saaait\.ru$ [NC] RewriteRule ^(.*)$ http://www.saaait.ru/$1 [R=301,L]
Зачем нужен 301 редирект?
Дело в том, что поисковики считают один и тот же сайт с www и без него разными сайтами. И если вы занимаетесь продвижением сайта, то ссылочный вес может утекать из за такого написания и не правильной настройки. И все внешние ссылки на ваш сайт будут делиться на две части, в зависимости от того, в каком виде размещена ссылка на ваш сайт (с www или же без него), и при отсутствии редиректа вы будете фактически лишаться части ссылок, так как они буду растекаться в итоге на 2 разных сайта.
Удаляем /category/ из адресной строки
По умолчанию категории в WordPress отображаются так: http://urokwp.ru/blog/uroki-wordpress/htaccess-dlya-wordpress
А это не очень хорошо, во-первых очень длинный получается адрес, во-вторых лишняя вложеность в структуре. Сейчас это безобразие исправим с помощью .htaccess:
RewriteRule ^category/(.+)$ httр://www.saaait.ru/$1 [R=301,L]
Теперь вид такой: http://urokwp.ru/uroki-wordpress/htaccess-dlya-wordpress
Включаем кэширование браузера
Этот код улучшает кэширование браузером статических файлов. При повторном посещении сайта если код страницы не изменился, то эта страница со всем содержимым загрузится из кэша. Там самым увеличив скорость работы сайта.
FileETag MTime Size <ifmodule mod_expires.c> <filesmatch "\.(jpg|gif|png|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>
А в каких местах вставляются эти команды? Или можно как угодно?
Можно в любом месте 🙂
Супер сайт, спасибо, все понятно и красиво сделано. Сделал на своем сайтеhttp://www.sasanov.ru и все стало просто летать.
Спасибо Админу!
Спасибо 🙂 Очень рад 🙂
Здравствуйте, настроил все запреты к доступу в админ панель сайта. Проверял, все работает! Доступ через wp-admin wp-login.PHP только по моему IP. Но попытки входа не прекратились. Плагин (который у меня стоит) Login Security мне присылает письма о том, что на сайте было три неудачных попыток входа. Вопрос- куда пытается зайти бот,если все заблокировано?
а вот уточните у того плагина который вам дает информацию 🙂
да и не только роботы поисковиков ходят.
сайты активно ломают, причем на автомате.
Ну тогда надо смотреть логи доступа. Это спросите у вашего хостера.