【发布时间】:2011-06-10 21:06:33
【问题描述】:
我找到了两种从 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” 如果请求当前是 处理的是一个子请求,“假” 否则。子请求可能是 由需要的模块生成 解析其他文件或 URI 为了完成他们的任务。
【问题讨论】:
-
您确定这实际上是在减少,并且您不只是点击实际文件或其他重写规则吗?我有 RewriteLogLevel 9 和 RewriteLog /var/log/apache2/rewrite.log 所以我可以查看日志,并且它不会触发任何一条规则。我在 Apache 2.2 上。
标签: mod-rewrite redirect apache2