使用重写规则转发查询字符串

时间:2012-02-20 22:15:42

标签: .htaccess mod-rewrite url-rewriting query-string rewrite

我正在尝试编写重写规则但转发查询字符串时遇到了一些严重问题。 我也尝试了[QSA]标志,但它没有用。

遵循正确的要求:

/localhost/registry/registry.php?id=something&password=somethingelse&uri=whatever

我会改成这样的事情:

/localhost/registry/register

使用相同的帖子查询(id = something& password = somethingelse& uri = whatever)。 此时,我的.htaccess会修改上面的请求:

/localhost/registry/registry.php?request=register&id=something&password=somethingelse&uri=whatever

然后,我在.htaccess中尝试了以下重写规则:

RewriteRule ^register$ http://localhost/registry/registry.php?request=$0&$1 [QSA]

但是,在最后一个'&'之后,没有显示任何内容,$ 1变量为空。 我必须写什么样的重写规则?

提前致谢。

!!!解决方案!!!

RewriteRule ^register$ /registry/registry.php?request=$0 [QSA]

1 个答案:

答案 0 :(得分:1)

RewriteRule ^register$ /registry/registry.php?request=$0  [QSA]

如果你去http://localhost/registry/register?id=1,那么查询字符串将是(来自php):

array(2) {
  ["request"]=>
  string(8) "register"
  ["id"]=>
  string(1) "1"
}