重写规则以将index.php重定向到www

时间:2014-08-19 12:26:18

标签: .htaccess mod-rewrite

我遇到了三种不同的选项,用于从index.php到root进行301重定向。

选项1:将index.php重定向到www

RewriteCond %{THE_REQUEST} ^[A-Z]{3,9}\ /index\.php
RewriteRule ^index\.php$ / [L,R=301]

选项2:将index.php重定向到www

RewriteCond %{THE_REQUEST} ^.*/index.php 
RewriteRule ^(.*)index.php$ /$1 [L,R=301]

选项3:将index.php重定向到www

RewriteCond %{THE_REQUEST} ^[A-Z]{3,9}\ /index\.php [NC]
RewriteRule ^index\.php$ https://www.domain.co.uk/$1 [L,R=301]

有谁能帮助我理解上述三种替代选择的区别?在重写规则中,有什么影响:

/  
/$1
https://www.domain.co.uk/$1

1 个答案:

答案 0 :(得分:0)

第一个选项会将index.php(从根级)重定向到/
示例:http://www.domain.com/index.php变为http://www.domain.com/

第二个选项将index.php重定向到其根文件夹 示例:http://www.domain.com/x/z/index.php变为http://www.domain.com/x/z/

第三个选项相当于第一个选项,即使它有语法错误并且不会工作($1为空,因为规则中没有捕获任何组)。

结论(将index.php从根级别重定向到/ root)
如果我必须自己做,代码看起来像这样

RewriteCond %{THE_REQUEST} \s/index\.php\s [NC]
RewriteRule . / [R=301,L]