Skip to Content

7 полезных .htaccess сниппетов для Wordpress и Drupal блога

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

Файл .htaccess редактируется в обычном WordPad, только не забудьте предварительно на всякий случай сделать его резервную копию.

1. Перенаправление RSS фида на FeedBurner с помощью .htaccess
Многие блоггеры используют в качестве RSS фидера популярный сервис FeedBurner. Единственная проблема, которая при этом возникает - для его работы необходимо редактировать файлы шаблонов страниц либо ставить лишний модуль. Вот как можно решить эту проблему с помощью .htaccess - откройте файл и добавьте следующие строки:

# temp redirect wordpress or drupal content feeds to feedburner
<IfModule mod_rewrite.c>
 RewriteEngine on
 RewriteCond %{HTTP_USER_AGENT} !FeedBurner    [NC]
 RewriteCond %{HTTP_USER_AGENT} !FeedValidator [NC]
 RewriteRule ^feed/?([_0-9a-z-]+)?/?$ <a href="http://feeds2.feedburner.com/cookieslovers" title="http://feeds2.feedburner.com/cookieslovers">http://feeds2.feedburner.com/cookieslovers</a> [R=302,NC,L]
</IfModule>

Не забудьте исправить 6 строчку с адресом фида на ваш фид.

2. Использование кеширования браузером
Хороший способ увеличить скорость загрузки страниц браузером - это использовать его встроенное кеширование. Можно сделать так, чтобы в ответ на запросы браузера изображений, файлов стилей CSS и скриптов JavaScript высылался 304 not modified HTTP хедер с длительным сроком кеширования, скажем год - тогда при повторном заходе на ваш сайт браузер достанет все эти данные из своего кеша вместо того, чтобы тратить ваш трафик.

FileETag MTime Size
<ifmodule mod_expires.c>
  <filesmatch "\.(jpg|gif|png|css|js)$">
       ExpiresActive on
       ExpiresDefault "access plus 1 year"
   </filesmatch>
</ifmodule>

3. Сжатие статичных данных
Еще один способ сэкономить трафик вашего сайта - автоматически сжимать передаваемые данные на стороне сервера и осуществлять обратное действие на стороне клиента. Для представленного способа нужно, чтобы хостинг поддерживал mod_deflate или mod_gzip.

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>

Если хостинг не поддерживает ни mod_deflate, ни mod_gzip, то для Drupal можно воспользоваться, например, этим методом.

4. Фильтруем комментарии от спам ботов
Спам боты оставляют свои надоедливые комментарии, переходя на сайт напрямую без рефёреров - они просто выполняют запросы к сайтам из своего спам-листа. А это значит, что можно отфильтровать их комментарии, запретив доступ к странице комментариев напрямую. Пример для Wordpress:

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]

5. Перенаправляем поисковики на зарезервированную страницу без индексации во время обновления сайта
Во время обновления темы блога или версии модулей/cms можно сделать так, чтобы все запросы сайта переходили на специально созданную и красиво задизайненную html страницу, при этом проставив ей 302 HTTP ответ, чтобы поисковики её не проиндексировали.

RewriteEngine on
RewriteCond %{REQUEST_URI} !/maintenance.html$
RewriteCond %{REMOTE_ADDR} !^123\.123\.123\.123
RewriteRule $ /maintenance.html [R=302,L]

Во второй строке необходимо прописать свой IP адрес сайта.

6. Защита от утечки контента и трафика
Есть такой термин - hotlinking - он употребляется, когда говорят об отображении медиа контента (например, картинок) чужого сайта на своём сайте напрямую без перезаливки на свой хостинг. Если вы не хотите, чтобы контент, размещенный, на вашем сайте использовался таким образом, расходуя ваш трафик, можно запретить это в .htaccess:

RewriteEngine On
#Replace ?mysite\.com/ with your blog url
RewriteCond %{HTTP_REFERER} !^http://(.+\.)?mysite\.com/ [NC]
RewriteCond %{HTTP_REFERER} !^$
#Replace /images/nohotlink.jpg with your "don't hotlink" image url
RewriteRule .*\.(jpe?g|gif|bmp|png)$ /images/nohotlink.jpg [L]

По адресу /images/nohotlink.jpg предлагается расположить картинку, красочно иллюстрирующую ваши мысли по поводу хотлинкинга.

7. Баним спамеров по IP
Самый простой метод блокировки спам ботов - запретить им доступ к сайту вообще, прописав в .htaccess их айпи в бан лист.

<Limit GET POST>
order allow,deny
deny from xx.xx.xx.xx
allow from all
</Limit>

Источники:
http://www.wprecipes.com/how-to-redirect-wordpress-rss-feeds-to-feedburn...
http://www.wprecipes.com/how-to-protect-your-wordpress-blog-from-hotlinking
http://lorelle.wordpress.com/2007/09/20/the-easiest-way-to-ban-a-wordpre...
http://www.catswhocode.com/blog/10-awesome-htaccess-hacks-for-wordpress
http://drupalcookbook.ru/recept/szhatie-trafika

Комментарии

Кеширивание на целый год -

Кеширивание на целый год - это так наивно! Кто знает, захочет ли пользователь зайти на сайт через год. Да и сможет ли?

Оставь тег айрони, всяк сюда

Оставь тег айрони, всяк сюда входящий :p

полезно

полезно

Попробую утихомирить вашим

Попробую утихомирить вашим методом спам-ботов, ибо уже сил просто нет Crazy

Отправить комментарий

Содержание этого поля является приватным и не предназначено к показу.
Smileys
:):D:bigsmile:;):p:O:|:(:~:((8):steve:J):glasses::party::love:
  • Адреса страниц и электронной почты автоматически преобразуются в ссылки.
  • Доступны HTML теги: <a> <em> <strong> <cite> <code> <ul> <ol> <li> <dl> <dt> <dd> <img> <span> <div> <h2> <h3>
  • Строки и параграфы переносятся автоматически.
  • You can enable syntax highlighting of source code with the following tags: <code>, <blockcode>, <c>, <cpp>, <drupal5>, <drupal6>, <java>, <javascript>, <php>, <python>, <ruby>. Beside the tag style "<foo>" it is also possible to use "[foo]". PHP source code can also be enclosed in <?php ... ?> or <% ... %>.
  • Image links with 'rel="lightbox"' in the <a> tag will appear in a Lightbox when clicked on.
  • Image links from G2 are formatted for use with Lightbox2
  • Textual smileys will be replaced with graphical ones.
  • You may insert videos with [video:URL]

Подробнее о форматировании

Type the characters you see in the picture above; if you can't read them, submit the form and a new image will be generated.