仅为/index.php从URL中删除QUERY_STRING

时间:2011-07-27 04:47:52

标签: apache .htaccess mod-rewrite apache2 query-string

我想使用mod_rewrite(.htaccess)从URL中删除查询字符串,但仅适用于/index.php(而不是/)。

例如,http://www.example.org/index.php?foo=bar应该重定向到http://www.example.org/index.php,但http://www.example.org/?foo=bar应该保持不变。

这是我目前的结论:

RewriteCond %{QUERY_STRING} !=""
RewriteCond %{REQUEST_URI} ^/index\.php
RewriteRule ^(.*)$ /$1? [R=301,L]

它有效,但没有我想要的限制(即使index.php不在URL中,它仍会删除查询字符串。我认为这可能与REQUEST_URI意识到/有关正在内部重定向到/index.php,但我无法确定。

作为一个附带问题,如果我能弄清楚使用了什么价值REQUEST_URI,那么我可以更轻松地完成这些工作,是否有一种简单的方法可以将其记录到某个地方?

1 个答案:

答案 0 :(得分:0)

您可以将此行添加到httpd.conf以查看正在进行的操作

RewriteLog /path/to/log
RewriteLogLevel 5