Как mod_rewrite может выбрать правильный RewriteCond в логи ElseIf c, чтобы решить, добавлять ли WWW or нет? - PullRequest
1 голос
/ 18 февраля 2020

Я ищу следующие логи c:

  1. Если у хоста есть только 1 точка, добавьте www (например, example.com превратится в www.example.com)
  2. Остальное , , если Хост начинается с www, удалите его (например, www.dummy.example.com превратится в dummy.example.com)

I ' Я хотел бы, чтобы это было в общих чертах, нет example.com внутри кода.

Вот что я до сих пор с тем, что мне нужно, закомментировано:

RewriteEngine On  
RewriteCond %{HTTP_HOST} ^[^.]+\.[^.]+$  
RewriteRule ^(.*)$ https://www.%{HTTP_HOST}/$1 [L,R=301]  
# ElseIf  
# RewriteCond %{HTTP_HOST} ^www\.(.*)$ [NC]  
# RewriteRule ^(.*)$ https://%1%{REQUEST_URI} [R=301,QSA,NC,L]

1 Ответ

1 голос
/ 18 февраля 2020

Иметь это так:

RewriteEngine On  

# check for single dot
RewriteCond %{HTTP_HOST} ^[^.]+\.[^.]+$  
RewriteRule ^ https://www.%{HTTP_HOST}%{REQUEST_URI} [L,R=301,NE]

# ElseIf check for www and 2 or more dots
RewriteCond %{HTTP_HOST} ^www\.([^.]+\.[^.]+\..+)$ [NC]  
RewriteRule ^ https://%1%{REQUEST_URI} [R=301,NE,L]
...