Перенаправление htaccess для https, www, без конечных sla sh для файлов - PullRequest
0 голосов
/ 03 марта 2020

Я бы хотел, чтобы мои URL были https, www and без косой черты. Поскольку у меня есть несколько доменов, которые указывают на эту страницу, у домена stati c нет выбора. Это то, что у меня есть:

# force www
RewriteCond %{HTTP_HOST} !^$
RewriteCond %{HTTP_HOST} !^www\. [NC]
RewriteCond %{HTTPS}s ^on(s)|
RewriteRule ^ http%1://www.%{HTTP_HOST}%{REQUEST_URI} [R=301,L]

# force https
RewriteCond %{HTTPS} !on
RewriteRule (.*) https://%{HTTP_HOST}%{REQUEST_URI}

# remove trailing slash
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule ^(.*)/$ /$1 [R=301,L]

Это работает довольно хорошо, за исключением случая:

https://www.example.com//

, который перенаправляет на:

https://www.www.example.com/

Любой предложения о том, как я могу сделать эту работу? Кроме того, с точки зрения перенаправления, я не совсем уверен, что это сделает 3 перенаправления в худшем случае и может быть каким-то образом улучшен до одного перенаправления?

Заранее спасибо!

1 Ответ

0 голосов
/ 09 марта 2020

Тем временем я нашел что-то еще, что, кажется, имеет больше смысла

# force https and www
RewriteCond %{HTTPS} off [OR]
RewriteCond %{HTTP_HOST} !^www\. [NC]
RewriteCond %{HTTP_HOST} ^(.*)$  [NC]
RewriteRule (.*) https://www.%1/$1 [R=301,L]

# remove trailing slash
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule ^(.*)/$ /$1 [R=301,L]

Теперь единственными оставшимися проблемами являются следующие два запроса:

http://www.example.com

, который перенаправляет на https://www.www.example.com

и

https://www.example.com//

, которые не удаляют множественные косые черты.

есть идеи? был бы очень признателен за помощь!

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...