10 трюков с .htaccess для Drupal

Тема в разделе "Drupal", создана пользователем abody, 6 авг 2012.

Информация :
Прежде чем создать новую тему внимательно ознакомьтесь с правилами раздела
Модераторы: DMS
  1. abody

    abody

    Регистр.:
    14 сен 2006
    Сообщения:
    243
    Симпатии:
    154
    Нашёл в интернете очень интересную заметку, уверен будет полезна многим!


    10 трюков с .htaccess для Drupal

    Перед изменением файла .htaccess не забудьте сделать его резервную копию. Я не отвечаю за работоспособность вашего сайта после исполнения этих трюков.
    1 — Перенаправляем RSS поток Drupal на feedburner с использованием .htaccess

    Почему некоторые вебмастера не используют feedburner? Ведь это такой замечательный инструмент для контроля за читателями RSS вашего сайта. Наверное проблема в том, что приходится руками исправлять файлы шаблонов, но этот трюк поможет сохранить Ваше время. Не забудьте исправить в строке 6 на Ваш код
    <IfModule mod_rewrite.c>
    RewriteEngine on
    RewriteCond %{HTTP_USER_AGENT} !FeedBurner [NC]
    RewriteCond %{HTTP_USER_AGENT} !FeedValidator [NC]
    RewriteRule ^feed/?([_0-9a-z-]+)?/?$ httр://feeds2.feedburner.com/vash_kod[R=302,NC,L]
    </IfModule>
    2 — Удалить /node/ (или что-то другое) из пути в адресе Drupal

    По умолчанию адреса материалов Drupal отображаются так: httр://Перейти по ссылке
    Но не все понимают что такое node и зачем оно в адресе. Это можно исправить с помощью .htaccess
    <?phpRewriteRule ^node/(.+)$ httр://Перейти по ссылке [R=301,L]?>
    Теперь адреса будут выглядеть так: httр://Перейти по ссылке
    П р и м е ч а н и е. Разумеется, Друпалу это не надо - он имеет развитую систему создания адресов с помощью модуля Path, мощь которого многократно увеличивается путем установки модуля PathAuto.
    3 — Оптимизация за счет использование кэша браузера

    Очень хороший путь оптимизации сайта — это использование кэша браузера. Этот код улучшает кэширование браузером статических файлов. При повторном запросе к файлу, который не изменился клиент получит HTTP-заголовок 304 (Not Modified), а не содержимое файла.
    FileETag MTime Size
    <ifmodule mod_expires.c>
    <filesmatch "\.(jpg|gif|png|css|js)$">
    ExpiresActive on
    ExpiresDefault "access plus 1 year"
    </filesmatch>
    </ifmodule>
    4 — Сжатие статических данных

    Этот код уменьшит объём данных передаваемых между сервером и пользователем за счет их сжатия.
    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
    5 — Перенаправление с одного URL на другой

    Это делается отдачей http-заголовка 301 (Moved Permanently, перемещен навсегда). Например, если вам требуется перенаправить пользователя с адреса httр://Перейти по ссылке, это можно сделать как-то так:
    RedirectMatch 301 /([0-9]+)/([0-9]+)/([0-9]+)/(.*)$ httр://Перейти по ссылке
    Еще в Друпале можно использовать модули PathAuto и GlobalRedirect
    6 — Антиспам: запретить комментирование если отсутствует referrer

    Метод построен на том, что многие спам-боты не передают referer (заголовок http-запроса, содержащий адрес страницы, откуда производится переход) когда отправляют спам. Этот код проверяет referrer и блокирует отправку комментария если отсутствует referer при обращении к пути /comment/reply/. Не забудьте в строке 4 вписать домен своего сайта.
    RewriteEngine On
    RewriteCond %{REQUEST_METHOD} POST
    RewriteCond %{Перейти по ссылке} !^.*/comment/reply/* RewriteCond %{HTTP_REFERER} !.*drupal.ru.* [OR] RewriteCond %{HTTP_USER_AGENT} ^$ RewriteRule (.*) ^Перейти по ссылке [R=301,L]
    7 — Перенаправить пользователя на страницу-заглушку

    При обслуживании сайта желательно показать посетителям временную страницу-заглушку. Замените в строке 2 maintenance.html на название вашего файла. В строке 3 впишите свой IP, чтобы вас не перекидывало на эту заглушку. 302-редирект используется чтобы поисковые системы не проиндексировали содержимое временной страницы.
    RewriteEngine on
    RewriteCond %{Перейти по ссылке} !/maintenance.html$
    RewriteCond %{REMOTE_ADDR} !^123\.123\.123\.123
    RewriteRule $ /maintenance.html [R=302,Перейти по ссылке]
    Разумеется, можно делать тоже самое из админки Drupal (admin/settings/site-maintenance)
    8 — Защита сайта от «хотлинков»

    Хотлинк — это использование файлов, размещенных на вашем сайте на страницах других сайтов с целью сэкономить свой серверный трафик. Тема у нас Перейти по ссылке, повторим. Суть аналогична таковой из трюка 6: левый реферрер – пошел вон.
    RewriteEngine On
    #Замените ?drupal\.ru/ адресом своего сайта
    RewriteCond %{HTTP_REFERER} !^http://(.+\.)?drupal\.ru/ [NC]
    RewriteCond %{HTTP_REFERER} !^$
    #Замените /images/nohotlink.jpg путем к своей картинке, где нарисована волосатая негритянская задница
    RewriteRule .*\.(jpe?g|gif|bmp|png)$ /images/nohotlink.jpg [Перейти по ссылке]
    9 — Разрешить доступ к admin-ке только с вашего IP

    Дополнительной защитой сайта от взлома может служить ограничение списка адресов, с которых разрешено заходить в админку. Не забудьте вставить свой IP в строке 2.
    RewriteCond %{Перейти по ссылке} ^/admin/
    RewriteCond %{REMOTE_ADDR} !123.123.123.123
    RewriteRule .* - [F]
    10 — Блокирование IP спамеров

    Часто спам-боты ходят с одних и техже IP. Трюк поможет блокировать доступ с этих адресов. Внесите адрес спамера в строке 3. Можно расширить список заблокированных адресов добавив строки deny from xxx.xx.xxx.xxx.
    <Limit GET POST>
    order allow,deny
    deny from 200.49.176.139
    allow from all
    </Limit>
    Обновление Исправлен код в 9 трюке - теперь можно реально запретить доступ к админке с левых ip-адресов.
     
    mazik001, LarianVonLich, reaktor и 4 другим нравится это.