Не забываем про правила:
Options +FollowSymLinksRewriteEngine 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]