1

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

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

但返回的输出是:

url = index.php

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

4

3 回答 3

3

您需要从规则中排除目的地:

RewriteCond $1 !=index.php
RewriteRule ^(.*)/?$ index.php?url=$1 [L]
于 2009-12-06T13:04:27.597 回答
3

尽可能在正则表达式中省略不必要的括号:

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

如果要排除“index.php”:

RewriteRule ^(?!index\.php).* index.php?url=$0 [L]
于 2009-12-06T13:10:18.477 回答
1

尝试删除斜线:

RewriteRule ^(.*)$ index.php?url=$1 [L]
于 2009-12-06T13:05:33.430 回答