0

我正在尝试使用获取参数制作 RewriteRule。这是一个简单的例子,但仍然不起作用。

RewriteRule ^/?localhost/([0-9]+) test.php?id=$1 [QSA]

所以如果我去localhost/123我想要 test.php 脚本中的123as $_GET

知道为什么这会失败吗?所有其他“正常”的 RewriteRules 都可以正常工作。

4

2 回答 2

2

localhost域,不属于RewriteRule. 而且我已将您的更改[QSA]为,[L,QSA]因此不会执行进一步的规则。

RewriteRule ^([0-9]+) test.php?id=$1 [L,QSA]

如果需要对此进行限制,以便在域为 localhost 时重写,那么您将使用RewriteCond类似:

RewriteCond %{HTTP_HOST} ^localhost$
RewriteRule ^([0-9]+) test.php?id=$1 [L,QSA]

如果您仅在开发中执行重写,而不是在部署到生产服务器时执行,那将很有用。

于 2012-05-05T12:29:22.370 回答
0

试试这个:

RewriteBase /localhost
RewriteRule ^(\d+)$ test.php?id=$1 [QSA]

\d 代表 [0-9]

希望这可以帮助。

于 2012-05-05T12:30:31.213 回答