没有得到查询字符串参数

时间:2012-06-28 10:00:29

标签: php .htaccess

我面临从查询字符串中获取变量的问题。我已经为我的页面使用了htaccess重定向。

我写了以下规则。

RewriteEngine On
RewriteRule ^([a-zA-Z0-9-/]+).htm$ category.php?uniqname=$1
RewriteRule ^([a-zA-Z0-9-/]+).htm/$ category.php?uniqname=$1

如果我键入gold-plated-chain.htm,则此规则正在执行的操作是我重定向到的浏览器 category.php?uniqname=gold-plated-chain 现在我想传递一个变量,所以我这样做gold-plated-chain.htm?page=2但是我无法在category.php上获取页面变量我正在重定向但是没有那个页面变量

提前谢谢

3 个答案:

答案 0 :(得分:2)

我/你想要的是QSA标志(参见http://httpd.apache.org/docs/2.0/mod/mod_rewrite.html),它应附加查询字符串。

尝试将[QSA]添加到RewriteRule行的末尾。

答案 1 :(得分:1)

您需要添加[QSA]标志以告知重写引擎合并查询字符串。添加[L]标志并指定基数总是明智的。逃避“。”也是明智之举。这个字符被解释为通配符您还可以组合这两个规则。因此:

RewriteEngine On
RewriteBase   /
RewriteRule   ^([\w-/]+)\.htm/?$   category.php?uniqname=$1  [L,QSA]

BTW,\w只是a-zA-Z0-9的缩写。

答案 2 :(得分:0)

你应该从正则表达式中删除^。它表示字符串的开头。