设置默认的Apache RewriteRule条目

时间:2009-12-06 13:01:07

标签: apache mod-rewrite url-rewriting default-value

我想设置一个'默认'重写规则来捕获与之前的重写条目不匹配的任何内容。我试过这个:

RewriteRule ^(.*)/?$ index.php?url=$1 [L]

但返回的输出是:

url = index.php

理想情况下,我想要的是将所有GET值附加到“url”,以便将它们保存到我的Web日志中。任何人都有任何建议如何解决这个问题?

3 个答案:

答案 0 :(得分:3)

您需要从规则中排除目标:

RewriteCond $1 !=index.php
RewriteRule ^(.*)/?$ index.php?url=$1 [L]

答案 1 :(得分:3)

无论何时可以在正则表达式中省略不必要的括号:

RewriteRule .* index.php?url=$0 [L]

如果要排除“index.php”:

RewriteRule ^(?!index\.php).* index.php?url=$0 [L]

答案 2 :(得分:1)

尝试删除斜杠:

RewriteRule ^(.*)$ index.php?url=$1 [L]