По дате Октябрь 5th, 2007

mod_rewrite Примеры

Перенаправление на сайт с www

# нерабочий вариант:
RewriteCond %{SERVER_NAME} !^www.*$
RewriteRule ^(.*)$ http://www.%{SERVER_NAME}/$1 [R]

# рабочий вариант:
RewriteCond    %{HTTP_HOST}            !^www\.
RewriteRule    (.*)                http://www.%{HTTP_HOST}/$1 [R=301,L]

# Перенос наоборот - переносим все что с “www” на БЕЗ “www”
RewriteCond %{HTTP_HOST} ^www\.(.*)$ [NC]
RewriteRule ^(.*)$ http://%1/$1 [L,R=301]

Перенаправление http на https и наоборот (вместе не использовать!):


# с http на https
RewriteCond %{HTTPS} on
RewriteRule (.*) http://%{HTTP_HOST}%{REQUEST_URI} [L]
# с HTTPS на HTTP:
RewriteCond %{HTTPS} off
RewriteRule (.*) https://%{HTTP_HOST}%{REQUEST_URI} [L]

Добавляем закрывающий слэш в конце

# этот вариант почему-то перебрасывал с домена www. на домен без www
RewriteRule ^([a-zA-Z0-9/-]*[^/])$ $1/ [R=301]
#Слегка модифицировал, и редирект стал осуществляться на тот же домен:
RewriteRule ^([a-zA-Z0-9/-]*[^/])$ http://%{HTTP_HOST}/$1/ [R=301]

Как склить index.php , index.html index.asp итд с главной страницей сайта (с корнем:


# при нулевой строке запроса перенаправляем ПОЛНЫЕ вхождения
RewriteCond %{REQUEST_URI} ^/(index.aspx|default.aspx|default.asp|index.asp|index.html|index.htm|index.php)$
RewriteCond %{QUERY_STRING} ^$
RewriteRule .* / [R=301,L]
# проверить на работоспособность
RewriteCond %{REQUEST_URI} ^/index\.(.+)$
RewriteRule .+ / [R=301,L]
# вариант не совсем корректный, т.к. %{THE_REQUEST}
#содержит запрос целиком: GET /index.php HTTP/1.1
RewriteCond %{THE_REQUEST} ^[A-Z]{3,9}\ /index\.html\ HTTP/
RewriteRule ^index\.html$ http://www.yoursite.ru/ [R=301,L]

RewriteCond %{THE_REQUEST} index.html
RewriteRule index.html / [R=301,L]

Убираем index.php из адресов (перенаправляем со страниц вида index.php/page/3 на /page/3):

RewriteCond %{THE_REQUEST} index.php
RewriteRule ^index.php/(.*) /$1 [R=301,L]

Опубликовано Октябрь 5, 2007 | автор: levik  |  Комментарии (2) »