Супер возможности файла .htaccess для WordPress

Добрый вечер, друзья! Вот и пришла пора обсудить такой важный файл - как .htaccess для WordPress, который необходим для правильной работы блога и внедрения дополнительных функций. Многие начинающие веб-мастера даже не догадываются о существовании данного файла и тем более о его предназначении.

А некоторые, опасаются самостоятельно его настраивать. Что в принципе и правильно! Не разбираешься не лезь =)

Статьи по теме:

Кто такой .htaccess и зачем?

Начнем с того, что представляет из себя этот .htaccess и какую пользу он несет? Этот файлик применяется для дополнительной конфигурации web-сервера Apache и ему подобных. Данный файл позволяет выполнять следующие функции:

  • В разных директориях задает определенные конфигурации;
  • Заблокировать пользователя через адрес IP;
  • Осуществлять управление поисковыми роботами;
  • Изменять имена индексных файлов;
  • Ограничивать доступ к папкам посредством логина и пароля;
  • Перенаправлять людей на сторонние ресурсы (редирект);
  • Не давать просматривать файлы любого вида и закрывать доступ к ним;
  • Создавать странички ошибок 500, 404 и 403.

Стандартный образец .htaccess для WordPress

По идеи, сам файл уже должен присутствовать на Вашем сервере в корневой директории. Поэтому зайдите туда и скопируйте его на ваш ПК. Перед тем, как Вы будете вносить правки, хочу Вас предупредить:

Перед любым вмешательством в .htaccess, рекомендую сделать резервную копию файла! Достаточно малейшей ошибки и Ваш блог накроется медным тазом.

Если не умеете делать резервные копии, то прочитайте эту статью... А я продолжаю!

Как поступить, когда .htaccess отсутствует? Делаем следующее... На рабочем столе, создадим обычный txt-файл и переименуем его в .htaccess! После чего, откройте его с помощью все того же текстового редактора "блокнот", хотя лучше применить "Notepad++"... И запишите туда следующие записи:

# BEGIN WordPress

RewriteEngine On
RewriteBase /
RewriteRule ^index\.php$ - [L]
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule . /index.php [L]

# END WordPress

Теперь копируем все это дело и сохраняем... Перекидываем обратно в корневую директорию ресурса на хостинге.

Убираем дубли WordPress с помощью .htaccess

Лично я использую .htaccess для перенаправления посетителей или поисковых ботов с одного адреса на другой (редирект). Это в первую очередь необходимо для борьбы с дублированием контента... Если не знаете про что идет речь, то почитайте статью моего партнера - тут, в поиске наберите "дубли", там несколько статей!

Используем .htaccess для борьбы с дублями:
[sociallocker]

# BEGIN WordPress

RewriteEngine On
RewriteBase /
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} ^replytocom= [NC]
RewriteRule (.*) $1? [R=301,L]
RewriteCond %{QUERY_STRING} ^attachment_id= [NC]
RewriteRule (.*) $1? [R=301,L]
RewriteBase /
RewriteRule ^index\.php$ - [L]
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule . /index.php [L]

# END WordPress

[/sociallocker]

Примеры функций .htaccess для WordPress

Внимание! Данные коды подойдут не для всех из-за особенностей Вашего хостинг-провайдера!

Создадим перенаправление (редирект) на другой домен:

RewriteRule ^(.*)$ http://новый_доменс.ru/$1 [R=301,L]

Перенаправление с www.доменс.ru на основной домен сайта доменс.ru

RewriteEngine On
RewriteCond %{HTTP_HOST} !^доменс\.ru$ [NC]
RewriteRule ^(.*)$ http://доменс.ru/$1 [L,R=301]

Блокировка доступа к ресурсу для всех:

deny from all

Блокировка конкретных юзеров к ресурсу по IP:

order allow,deny
deny from 555.555.555.555
allow from all

А вот так, наоборот, открываем доступ к ресурсу для определенных IP

order deny,allow
deny from all
allow from 555.555.555.555

Кэшируем данные в браузере — Сам Google советует применять кэширование информации, чтобы ускорить ресурс. Смысл данной настройки в том, что браузер единожды получает определенные виды данных и далее забирает их из кэша, а не подгружает их заново. Благодаря этому ресурсу добавляется заветная скорость загрузки.


Header append Cache-Control "public"
FileETag MTime Size
ExpiresActive On
ExpiresDefault "access plus 0 minutes"
ExpiresByType image/ico "access plus 1 years"
ExpiresByType text/css "access plus 1 years"
ExpiresByType text/javascript "access plus 1 years"
ExpiresByType image/gif "access plus 1 years"
ExpiresByType image/jpg "access plus 1 years"
ExpiresByType image/jpeg "access plus 1 years"
ExpiresByType image/png "access plus 1 years"

Если первый вариант не сработал, попробуйте вот этот:



ExpiresActive on
ExpiresDefault "access plus 1 year"

Блокируем доступ к наиважнейшим модулям
С целью обеспечения дополнительной безопасности ресурса, мы можем заблокировать доступ, допустим к файлу .htaccess. Для этого примените такие строки:


order allow,deny
deny from all

GZIP-сжатия для: HTML, CSS, JS - ускоряем загрузку блога:


mod_gzip_on Yes
mod_gzip_dechunk Yes
mod_gzip_item_include file \.(html?|txt|css|js|php|pl)$
mod_gzip_item_include handler ^cgi-script$
mod_gzip_item_include mime ^text\.*
mod_gzip_item_include mime ^application/x-javascript.*
mod_gzip_item_exclude mime ^image\.*
mod_gzip_item_exclude rspheader ^Content-Encoding:.*gzip.*

Теперь сделаем кеширование файлов:


Header set Cache-Control "max-age=2592000"

Хочу еще раз предупредить о том, что .htaccess для WordPress не игрушка! Вы все делаете на свой страх и риск! Если не уверены, лучше нанять спеца!

До следующих уроков!

PS: Кстати, создал канал на Telegram (https://telegram.me/savme_blog) и приглашаю Вас подписаться!