Обучаю битриксу программистов, интеграторов. Подробнee ⇒

Переадресация через .htaccess 301 редирект и не только



Проверить статусы ответа можно тут https://pr-cy.ru/headers/
простой редирект с одной страницы на другую
Redirect 301 /news/ /company/news/
RewriteCond %{REQUEST_URI} ^/news/$
RewriteRule ^.*$ https://nikaverro.ru/company/news/? [R=301,L]
редирект при переносе раздела
чтобы всё (папки-файлы) из папки /support/tutorials/test-drives/ переехало /learning/test-drives/
RewriteRule ^(.*)support/tutorials/test-drives/(.*)$ /learning/test-drives/$2 [QSA,L,R=301,NC]
редирект при переносе раздела на отдельный сайт
RewriteRule ^(.*)creations/(.*)$ https://ikipedia.ru/$2 [QSA,L,R=301,NC]


c www на без www
RewriteCond %{HTTP_HOST} ^www\.(.*)$ 
RewriteRule ^(.*)$ https://%1/$1 [L,R=301]
без www на с www
RewriteCond %{HTTP_HOST} ^([^www].*)$ 
RewriteRule ^(.*)$ https://www.%1/$1 [L,R=301]
все страницы одного сайта на главную страницу другого
RewriteCond %{REQUEST_URI} (.*)
RewriteRule ^(.*)$ https://nikaverro.ru/ [L,R=301]
все страницы одного сайта на такую же страницу другого
RewriteCond %{REQUEST_URI} (.*) 
RewriteRule ^(.*)$ https://nikaverro.ru/$1 [L,R=301]
с http на https
RewriteCond %{HTTPS} !=on
RewriteRule ^(.*)$ https://%{HTTP_HOST}/$1 [R=301,L]

Если возникает циклический редирект, то:

RewriteCond %{HTTPS} off
RewriteCond %{HTTP:X-Forwarded-Proto} !https
RewriteRule ^(.*)$ https://%{HTTP_HOST}%{REQUEST_URI} [L,R=301]

Для Битрикс-сайтов на хостинге reg.ru

RewriteCond %{SERVER_PORT} !^443$
RewriteRule .* https://%{SERVER_NAME}%{REQUEST_URI} [R,L]

Для сертификатов https c Cloudflare:

RewriteCond %{HTTP:CF-Visitor} '"scheme":"http"'
# Without Cloudflare:
# RewriteCond %{HTTPS} off  RewriteRule ^ https://www.example.com%{REQUEST_URI} [NE,R=301,L]
с https на http
RewriteCond %{HTTPS} =on 
RewriteRule ^(.*)$ http://%{HTTP_HOST}/$1 [R=301,L]

с GET параметром на другой адрес

RewriteCond %{QUERY_STRING} ^id=229
RewriteRule ^.*$ /new/? [R=301,L] 

с определенного адреса с GET параметром на другой

RewriteCond %{REQUEST_URI} /test/
RewriteCond %{QUERY_STRING} ^id=229 
RewriteRule ^.*$ /new/? [R=301,L]

редирект с на определенную страницу с параметрами
RewriteBase /personal/logout/
RewriteRule personal/logout/ personal/index.php?exit=yes [QSA,L,NE]
редирект на https для всего кроме файлика для обмена с 1С /bitrix/admin/1c_exchange.php
RewriteEngine On
RewriteBase /
RewriteCond %{HTTP:X-HTTPS} !1
RewriteCond %{REQUEST_URI} !^/bitrix/admin/1c_exchange.php$
RewriteRule ^(.*)$ https://%{HTTP_HOST}/$1 [R=301,L]
RewriteCond %{HTTP:X-HTTPS} 1 [NC]
RewriteCond %{REQUEST_URI} ^/bitrix/admin/1c_exchange.php$
RewriteRule ^(.*)$ http://%{HTTP_HOST}/$1 [R=301,L]
убрать множественные слеши в середине и в конце адреса
RewriteCond %{REQUEST_URI} /{2,} [OR]
RewriteCond %{THE_REQUEST} \s/{2,}
RewriteRule ^(.*)$ https://nikaverro.ru/$1 [R=301,L]
редирект на страницу со слешем
RewriteCond %{REQUEST_URI} !\?
RewriteCond %{REQUEST_URI} !\&
RewriteCond %{REQUEST_URI} !\=
RewriteCond %{REQUEST_URI} !\.
RewriteCond %{REQUEST_URI} !\/$
RewriteRule ^(.*[^\/])$ https://nikaverro.ru/$1/ [R=301,L]
Если блог был полезным, можете угостить меня "чашечкой кофе" :)

Сбер по номеру телефона +7 (953) 585-13-09 Вероника.
Спасибо!