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

Mod rewrite 将www.mydomain.com/index.php重写为www.mydomain.com,mod-rewrite,redirect,apache2,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 %{THE_REQUEST} ^[A-Z]{3,9}\ /index\.(html?|php

我找到了两种不同的方法将index.php/index.html重定向到域。两者似乎都有效;它们都不是以循环结束的:

RewriteEngine On
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]
这三种重写方法的区别在哪里?我应该使用什么?

以下是报告的一部分:

IS_SUBREQ将包含文本“true” 如果当前正在处理请求 已处理的是子请求“false” 否则。子请求可以是 由需要 解析中的其他文件或URI 为了完成他们的任务


当然,
http://www.martin-thoma.de/terminplaner/
目录。因此,他们正在工作:)

不管怎样,你看,第一个相当简单。而且,它是有效的。对于第二个,IS_SUBREQ总是false(假设没有其他重写规则将其他内容转换为index.php或index.html。因此,它也可以工作

将帮助您了解IS_SUBREQ何时为真。本页有示例


如果没有任何其他规则,则可以非常安全地使用第一条规则(无需重写)

你确定这是真正的重写,并且你不仅仅是在点击实际文件或其他重写规则吗?我有RewriteLogLevel 9和RewriteLog/var/log/apache2/rewrite.log,这样我就可以查看日志了,而且这两个规则都不会触发。我使用的是apache2.2。
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]