所以基本上我希望每个询问 example.com/index.php 的人都能将 301 重定向到 example.com/,
每个询问任何 www 的人。将 301 重定向到相应的非 www 站点
(www.examle.com/foo -> example.com/foo)的 urls
并且每个请求站点的人都在 url 中使用双斜杠 [还有三重等] 斜杠以将 301
重定向到 url删除了双斜杠(example.com////foo -> example.com)。
如果有人应该对这三种情况进行任何组合,他仍然应该得到 301 重定向到正确的 url (www.example.com////index.php -> example.com)。
所以我想出了这个:
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!
如何让它工作?