@Tupic123

Как объединить правила в htaccess?

Добрый день! существует файл в котором одновременно работают такие правила как:
1) редирект с http на https
2) редирект с без www на www
3) редирект с без / на конце с / на конце
4) редирект с двойного // на одно
По итогу получается такой редирект
611e96cb647dd932377687.jpeg
нужно добавить редирект с двойного -- на одинарный(при этом не создавая цепочка редиректов
Когда я добавляю правило
RewriteCond %{REQUEST_URI} ^(.*)--(.*)$
RewriteRule . %1-%2 [R=301,L]

создается цепочка
611e9758a93ef372577174.jpeg
Весь .htaccess
RewriteEngine On
RewriteCond %{REQUEST_URI} !\?
RewriteCond %{REQUEST_URI} !\&
RewriteCond %{REQUEST_URI} !\=
RewriteCond %{REQUEST_URI} !\.
RewriteCond %{REQUEST_URI} !\/$
RewriteCond %{HTTP_HOST} ^www\.(.*)$
RewriteRule ^(.*)$ https://www.%1/$1/ [L,R=301]

RewriteCond %{REQUEST_URI} !\?
RewriteCond %{REQUEST_URI} !\&
RewriteCond %{REQUEST_URI} !\=
RewriteCond %{REQUEST_URI} !\.
RewriteCond %{REQUEST_URI} !\/$
RewriteCond %{HTTP_HOST} ^([^www].*)$
RewriteRule ^(.*)$ https://www.%1/$1/ [L,R=301]

RewriteCond %{REQUEST_URI} !\?
RewriteCond %{REQUEST_URI} !\&
RewriteCond %{REQUEST_URI} !\=
RewriteCond %{REQUEST_URI} !\.
RewriteCond %{REQUEST_URI} ![^\/]$
RewriteCond %{HTTP_HOST} ^([^www].*)$
RewriteRule ^(.*)$ https://www.%1/$1 [L,R=301]


# DOUBLE / START
RewriteCond %{THE_REQUEST} //
RewriteRule .* /$0 [R=301,L]
# DOUBLE -- START
RewriteCond %{REQUEST_URI} ^(.*)--(.*)$
RewriteRule . %1-%2 [R=301,L]

Подскажите пожалуйста как объединить правила так, что бы не создавалась цепочка редиректов, а все редиректы происходили одновременно?
  • Вопрос задан
  • 86 просмотров
Решения вопроса 1
@dodo512
RewriteEngine On

RewriteCond %{REQUEST_URI} !/$  [OR]
RewriteCond %{THE_REQUEST} ^[^?]+(?://|--)
RewriteCond $1             ^(.*-)-(.*)$|(.*)
RewriteRule ^([^.]+?)/?$ https://www.soskin.com.ua/%1%2%3/ [R=301,L]

RewriteCond %{HTTP_HOST} !^www\. [NC]
RewriteRule .* https://www.soskin.com.ua/$0 [R=301,L]
Ответ написан
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы