Шаблонные редиректы через .htaccess

Шаблонные редиректы через .htaccess
Просмотров 4
Время чтения: 5 минут

Не забываем про правила:

Options +FollowSymLinks
RewriteEngine On

301-редирект с домена без WWW на домен с WWW префиксом

#исключаем POST запрос из редиректа
RewriteCond %{REQUEST_METHOD} !^POST [NC]
 
#проверяем не являться ли запрос к CMS, нужно по аналогии добавить адрес используемой на сайте CMS
RewriteCond %{REQUEST_URI} !^/administrator [NC]
 
#Далее стандартный редирект
RewriteCond %{HTTP_HOST} ^site\.ru$ [NC] # проверяем наш хост
RewriteRule ^(.*)$ http://www.site.ru/$1 [R=301,L] # переписываем правила по условиям выше

301-редирект http версии сайта на https

#проверяем не являться ли запрос к CMS, нужно по аналогии добавить адрес используемой на сайте CMS
RewriteCond %{REQUEST_URI} !^/administrator [NC]
 
#Далее стандартный редирект
RewriteCond %{HTTP:X-Forwarded-Proto} !https
RewriteCond %{HTTPS} off
RewriteRule ^ https://%{HTTP_HOST}%{REQUEST_URI} [L,R=301,NE]

301-редирект https версии сайта на http

#проверяем не являться ли запрос к CMS, нужно по аналогии добавить адрес используемой на сайте CMS
RewriteCond %{REQUEST_URI} !^/administrator [NC]
 
#Далее стандартный редирект
RewriteCond %{HTTP:X-Forwarded-Proto} https
RewriteCond %{HTTPS} on
RewriteRule ^ http://%{HTTP_HOST}%{REQUEST_URI} [L,R=301,NE]

С домена с WWW префиксом на без

#исключаем POST запрос из редиректа
RewriteCond %{REQUEST_METHOD} !^POST [NC]
 
#проверяем не являться ли запрос к CMS, нужно по аналогии добавить адрес используемой на сайте CMS
RewriteCond %{REQUEST_URI} !^/administrator [NC]
 
#Далее стандартный редирект
RewriteCond %{HTTP_HOST} ^www.site\.ru$ [NC]
RewriteRule ^(.*)$ http://site.ru/$1 [R=301,L]

Настройка переадресации на папки со слешем в конце /

#исключаем POST запрос из редиректа
RewriteCond %{REQUEST_METHOD} !^POST [NC]
 
#проверяем не являться ли запрос к CMS, нужно по аналогии добавить адрес используемой на сайте CMS
RewriteCond %{REQUEST_URI} !^/administrator [NC]
 
#проверяем, не запрашиваем ли мы физически существующий файл
RewriteCond %{REQUEST_FILENAME} !-f
 
#проверяем не заканчивается ли строка запроса на расширением файла
RewriteCond %{REQUEST_URI} !\..{1,10}$
 
#Далее стандартный редирект
RewriteCond %{REQUEST_URI} !(.*)/$
RewriteRule ^(.*)$ http://www.site.ru/$1/ [L,R=301]

Настройка переадресации на папки без слеша (убираем слеш в конце)

#исключаем POST запрос из редиректа
RewriteCond %{REQUEST_METHOD} !^POST [NC]
 
#проверяем не являться ли запрос к CMS, нужно по аналогии добавить адрес используемой на сайте CMS
RewriteCond %{REQUEST_URI} !^/administrator [NC]
 
#проверяем, не запрашиваем ли мы физически существующую директорию
RewriteCond %{REQUEST_FILENAME} !-d
 
#Далее стандартный редирект
RewriteCond %{REQUEST_URI} ^(.+)/$
RewriteRule ^(.+)/$ http://www.site.ru/$1 [R=301,L]

01 редирект с /index.php на /


RewriteEngine On
# Редиректы только для GET
RewriteCond %{REQUEST_METHOD} ^GET [NC]
# Исключаем не публичные папки (админку)
RewriteCond %{REQUEST_URI} !^/topsecret
# Редиректы только для главной страницы
RewriteCond %{REQUEST_URI} ^/index.(php|html|htm)
RewriteRule ^(.*)index\.(php|html|htm)$ https://%{HTTP_HOST} [R=301,L]

301 редирект с /*/index.php на /*/


RewriteEngine On
# Редиректы только для GET
RewriteCond %{REQUEST_METHOD} ^GET [NC]
# Исключаем не публичные папки (админку)
RewriteCond %{REQUEST_URI} !^/topsecret
# Редиректы только для всех страницы
RewriteCond %{REQUEST_URI} ^.+/index.(php|html|htm)
RewriteRule ^(.*)index\.(php|html|htm)$ https://%{HTTP_HOST}%$1 [R=301,L]

ВАЖНО! Для MODX Revolution в исключения необходимо добавлять папку connectors:


RewriteCond %{REQUEST_URI} !^/connectors [NC]

У вас есть деловой запрос?
Давайте обсудим!

Оставьте свои контакты,
мы свяжемся с вами в ближайшее время.

Cайт jetbit.ru использует файлы cookie для хранения данных. Продолжая использовать сайт, Вы даете согласие на работу с этими файлами. Подробнее