非www到www。将index.html重定向并重定向到index.php

时间:2014-01-20 13:32:30

标签: php regex apache .htaccess mod-rewrite

我使用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 /

1 个答案:

答案 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]