我正在尝试使用获取参数制作 RewriteRule。这是一个简单的例子,但仍然不起作用。
RewriteRule ^/?localhost/([0-9]+) test.php?id=$1 [QSA]
所以如果我去localhost/123
我想要 test.php 脚本中的123
as $_GET
。
知道为什么这会失败吗?所有其他“正常”的 RewriteRules 都可以正常工作。
我正在尝试使用获取参数制作 RewriteRule。这是一个简单的例子,但仍然不起作用。
RewriteRule ^/?localhost/([0-9]+) test.php?id=$1 [QSA]
所以如果我去localhost/123
我想要 test.php 脚本中的123
as $_GET
。
知道为什么这会失败吗?所有其他“正常”的 RewriteRules 都可以正常工作。
是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]
如果您仅在开发中执行重写,而不是在部署到生产服务器时执行,那将很有用。
试试这个:
RewriteBase /localhost
RewriteRule ^(\d+)$ test.php?id=$1 [QSA]
\d 代表 [0-9]
希望这可以帮助。