正しいhtaccessリダイレクトコードは何ですか?

Mar 04 2020

htaccessでこのコードを使用して、すべてのバージョンのURLをWebサイトにリダイレクトしましたhttps://wwwが、一部のツールではリダイレクトチェーンエラーが表示されます。誰かがこの問題を解決しますか?

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

回答

MrWhite Mar 04 2020 at 21:24

現在のディレクティブでは、を要求http://www.example.com/すると、リダイレクトされますhttps://www.www.example.com/-これは明らかに意図されたものではありません。

オプションのサブドメインを除外するには、キャプチャの3番目の条件を変更する必要がありますwww.

例えば:

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

ただし、一部のツールはリダイレクトチェーンエラーを表示します

「いくつかのツール」が何を示しているかに関係なく、重要なのはサイトが報告する内容です。