Заказать сайт недорого. Создание сайта на базе системы управления контентом. Индивидуальный подход при создании сайта. Современный и красивый дизайн сайта. Удобная навигация на сайте.

palexa.pp.ua@gmail.com

(+380) 66 531 77 01 ; 67 301 39 26

Модуль mod_rewrite - примеры использования в .htaccess

Модуль mod_rewrite, в составе Apache - это мощное средство преобразования URL адресов. При его использовании возможны почти все типы преобразований, которые могут выполняться или нет в зависимости от разных условий.

Mod_rewrite представляет собой основанный на правилах механизм (синтаксический анализатор с применением регулярных выражений), выполняющий URL преобразования на лету. Модуль mod_rewrite поддерживает неограниченное количество правил и связанных с каждым правилом условий, реализуя гибкий и мощный механизм управления URL. Преобразования могут использовать разные источники данных - переменные сервера, переменные окружения, заголовки HTTP, время и запросы к внешним базам данных в разных форматах для получения ссылок нужного Вам вида .

Директива RewriteCond определяет условие, при котором происходит преобразование. RewriteCond определяет условия для какого то правила. Перед директивой RewriteRule располагаются одна или несколько директив RewriteCond. Следующее за ними правило преобразования используется только тогда, когда ссылка соответствует условиям этой директивы, а также условиям этих дополнительных директив.

Как жестко запретить посещения вашего сайта для робота поисковой системы Google

RewriteEngine on

RewriteCond %{HTTP_USER_AGENT} Googlebot
RewriteRule .* - [F]

# Другой вариант возвращает вместо ошибки 403 ( FORBIDDEN ) ошибку 404 ( NOT_FOUND )

RewriteCond %{USER_AGENT} Googlebot
RewriteRule .* - [R=404]

Переадресация несуществующих URL на другой веб-сервер

RewriteEngine on

RewriteBase   /
RewriteCond /your/docroot/%{REQUEST_FILENAME} !-f
RewriteRule ^(.+) http://webserverB.dom/$1 

Проблема здесь в том, что это будет работать только для страниц, находящихся внутри DocumentRoot. Тогда, так как вы можете добавить больше условий (например, ещё и для управления домашними каталогами, и т.д.), есть лучший вариант:

RewriteEngine on

RewriteBase   /
RewriteCond /your/docroot/%{REQUEST_FILENAME} !-U
RewriteRule ^(.+) http://webserverB.dom/$1 

Закрыть доступ к сайту в рабочее время

RewriteEngine on

RewriteCond %{TIME_HOUR}%{TIME_MIN} > 900
RewriteCond %{TIME_HOUR}%{TIME_MIN} < 1800
RewriteRule .* - [ F ]

Сайт перенесен с одного домена на другой с site.com на site2.com

RewriteEngine on

RewriteCond %{HTTP_HOST} ^www\.site\.com$ [NC]
RewriteRule ^(.*)$ http://www.site2.com/$1 [R=301,L]

Часто хостеры накладывают ограничение на количество уникальных сайтов, и зачастую под это ограничение попадают и поддомены. Это ограничение можно обойти через .htaccess. Если вы хлтите направить поддомен forum.domain.net на директорию /forum .

Для этого необходимо направить нужные поддомены на папку с основным сайтом и создать вложенную директорию, например forum

RewriteEngine on

RewriteCond %{HTTP_HOST} ^forum\.domain\.net$ [NC]
RewriteCond %{REQUEST_URI} !^/forum/ [NC]
RewriteRule (.*) /forum/$1 [L]

Если на вашем сайте есть картинки или файлы (архивы), но не хотите, чтобы кто-то размещал их (если файлы(архивы), то ссылки на них) на своих страницах, создавая, таким образом, бесполезный трафик для вашего сайта, Вы можете запретить скачивание ресурсов, проверяя поле заголовка HTTP_REFERER для каталога:

RewriteEngine on

RewriteBase   /img/
RewriteCond %{HTTP_REFERER} !^$
RewriteRule .* - [ F ]

и для определенных типов файлов

RewriteEngine on

RewriteBase   /img/
RewriteCond %{HTTP_REFERER} !^$
RewriteRule \.(jpe?g|gif|png|css|swf)$ - [ F ]

В связи с неоднозначностью записи расширения HTML файлов (.htm или .html), некоторые пользователи могут ошибочно набрать адрес страницы. Для автоматического исправления такого рода ошибок, можно воспользоваться mod_rewrite.

RewriteEngine on

RewriteBase   /
RewriteRule ^(.*)\.htm$  $1.html [R=permanent]

Если надо запрос любой страницы сайта отправлять на одну (на страницу с сообщением, что  сайт временно недоступен), но в то же время нужно оставить его открытым для поисковых машин. То есть для посетителей сайт закрыт, а для индексации открыт.

RewriteEngine on

RewriteBase   /
RewriteCond %{HTTP_USER_AGENT} !^yandex.* [NC,OR]
RewriteCond %{HTTP_USER_AGENT} !^googlebot.* [NC,OR]
RewriteCond %{HTTP_USER_AGENT} !^gaisbot.* [NC,OR]
RewriteCond %{HTTP_USER_AGENT} !^rambler.* [NC,OR]
RewriteCond %{HTTP_USER_AGENT} !^aport.* [NC,OR]
RewriteCond %{HTTP_USER_AGENT} !^metacrawler.* [NC,OR]
RewriteCond %{HTTP_USER_AGENT} !^msnbot.* [NC,OR]
RewriteCond %{HTTP_USER_AGENT} !^crawler.* [NC]
RewriteRule ^/$ - [L,R]

Информация на сайте оказалась Вам полезной? Вы нашли ответ на вопрос?

Узнайте как поблагодарить меня

Добавить комментарий


Защитный код
Обновить