将www.mydomain.com/index.php重写为www.mydomain.com

时间:2011-01-18 05:15:49

标签: mod-rewrite redirect apache2

我发现有两种不同的方法可以从index.php / index.html重定向到域。两者似乎都有效;它们都没有以循环结束:

RewriteEngine On
RewriteRule ^index\.(php|html?)$ http://www.martin-thoma.de/terminplaner/ [R=301,L]

RewriteEngine On
RewriteCond %{IS_SUBREQ} false
RewriteRule ^index\.(php|html?)$ http://www.martin-thoma.de/terminplaner/ [R=301,L]

编辑:这是另一条规则:

RewriteEngine On
RewriteCond %{THE_REQUEST} ^[A-Z]{3,9}\ /index\.(html?|php)\ HTTP/
RewriteRule ^index\.(html?|php)$ http://www.martin-thoma.de/terminplaner/ [R=301,L]

这三种重写方法的区别在哪里?我该怎么用?

以下是manual的一部分:

  

IS_SUBREQ将包含文本“true”   如果当前的请求   已处理是子请求,“false”   除此以外。子请求可能是   由需要的模块生成   解决其他文件或URI   为了完成他们的任务。

1 个答案:

答案 0 :(得分:1)

肯定你的.htaccess不在http://www.martin-thoma.de/terminplaner/目录中。所以,他们正在努力:)

无论如何,你看,第一个相当简单。而且,它的工作原理。对于第二个,IS_SUBREQ始终为false(假设没有其他重写规则将其他内容转换为index.php或index.html。所以,它也在工作。

This page将帮助您了解IS_SUBREQ何时为真。这个页面有例子。

如果您没有任何其他规则,您可以非常安全地使用第一个(没有RewriteCond)