我使用mod_rewrite将所有非www请求定向到www。 url使用以下代码
RewriteEngine On
Options +FollowSymLinks
# non-www to www resolve
RewriteCond %{HTTP_HOST} !^www\.website\.co\.uk$ [NC]
RewriteRule ^(.*)$ http://www.website.co.uk/$1 [R=301,L]
但是我最近将索引页面从.html更改为.php,并且有几个外部链接仍然指向index.html页面。
由于上述规则,只需添加301重定向就会产生循环
#1 Permanent URL redirect
Redirect 301 /index.html http://www.website.co.uk/
我如何调整此代码以维护非www重定向,并将index.html请求重定向到index.php或www.website.co.uk /
答案 0 :(得分:1)
保持这样的规则:
DirectoryIndex index.php
RewriteEngine On
Options +FollowSymLinks
# non-www to www resolve
RewriteCond %{HTTP_HOST} !^www\.website\.co\.uk$ [NC]
RewriteRule ^(.*)$ http://www.website.co.uk/$1 [R=301,L]
# index.html to /
RewriteCond %{THE_REQUEST} \s/index\.html [NC]
RewriteRule ^ / [L,R=301]