基本的に、example.com/index.php に 301 リダイレクトを要求するすべての人に、example.com/ にリダイレクトしてもらいたいと考えています
。対応する非 www サイト
(www.examle.com/foo -> example.com/foo)
にリダイレクトされる 301 を取得するための URL と、URL に二重 [または三重など] のスラッシュを含むサイトを要求するすべての人は、301
を URL にリダイレクトします。二重スラッシュが削除されています (example.com////foo -> example.com)。
そして、誰かがこれら 3 つのケースのいずれかの組み合わせを行う必要がある場合でも、正しい URL (www.example.com////index.php -> example.com) に 301 リダイレクトされるはずです。
だから私はそれを思いつきます:
RewriteCond %{HTTP_HOST} !^example.com$
RewriteRule ^(.*)$ http://example.com/$1 [R=301]
RewriteCond %{THE_REQUEST} ^[A-Z]{3,9}\ /index\.php\ HTTP/
RewriteRule ^index\.php$ / [R=301,N]
RewriteCond %{THE_REQUEST} ^[A-Z]{3,}\s/{2,} [NC]
RewriteRule ^(.*)$ /$1 [R=301]
しかし、www.example.com//foo -> http://example.com/http:/example.com/foo = 404!
それを機能させる方法は?