htaccess redirect

(2 оценок, среднее: 5,00 из 5)
Загрузка...

Перенаправляем посетителя с помощью директивы RedirectMatch и регулярных выражений

Еще одна полезная директива, рекомендуемая к использованию  —RedirectMatch. Цитата: «Эта директива позволяет в качестве запрашиваемого адреса использовать регулярное выражение(пересылка не „с документа“, а „со всех документов, типа …“). Редирект внешний — браузеру сообщается о необходимости загрузить другую страницу.

Синтаксис:

RedirectMatch [status] regexp URL

Значения статусов (код возврата веб-сервера) стандартные:

permanent (301 — постоянный редирект), temp (302 — временный редирект, приходите ещё), seeother (303 — летим туда, там много вкусного), gone (410 — удалён навсегда).

Пример:

То же перенаправление со старого домена на новый без подключения RewriteEngine:

RedirectMatch 301 ^(.*)$ www.domainname.com/$1

От себя добавлю, что вы можете использовать не только http-статусы, но и другие условия:

RedirectMatch (.*)\.gif$ http://www.myserver.com$1.png
RedirectMatch (.*\.jpg)$ http://www.myanother.com$1

Обязательно сделайте резервную копию файла .htaccess до внесения изменений и проверьте работоспособность всего сайта — после добавления новых строк.

 

Редирект www.site.ru -> site.ru

RewriteCond %{HTTP_HOST} !^site.ru$ [NC]
RewriteCond %{REQUEST_FILENAME} !robots.txt
# yandex_5eaf9b710d03b49d.html - файл яндекса для подтверждения владения сайтом
RewriteCond %{REQUEST_FILENAME} !yandex_5eaf9b710d03b49d.html
RewriteRule ^(.*)$ http://site.ru/$1 [R=301,L]

Редирект / -> «» (/url/ -> /url)

RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule ^(.+)/$ /$1 [R=301,L]

Редирект index, default, home -> /

RewriteCond %{THE_REQUEST} ^(.*)index\.(php|html|htm)\ HTTP/ [OR]
RewriteCond %{THE_REQUEST} ^(.*)default\.(asp|aspx)\ HTTP/ [OR]
RewriteCond %{THE_REQUEST} ^(.*)home\.(html|htm)\ HTTP/
RewriteRule (.*)/(index\.(php|html|htm)|default\.(asp|aspx)|home\.(html|htm)) /$1 [R=301,L]

Редирект с // на «»

RewriteCond %{THE_REQUEST} ^[A-Z]{3,9}\ /(([^/]+/)*)/\ HTTP/ [NC]
RewriteRule (.*)/ /$1 [R=301,L]

Редирект главной

#редирект директивы /p/glavnaya на site.ru
Redirect 301 /p/glavnaya http://site.ru/