0

我面临从查询字符串中获取变量的问题。我为我的页面使用了 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 上获取页面变量我正在正确重定向但没有那个页面变量

先感谢您

4

3 回答 3

2

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

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

于 2012-06-28T10:04:45.530 回答
1

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

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

顺便说一句,\w只是a-zA-Z0-9.

于 2012-06-28T10:09:18.643 回答
0

您应该从正则表达式中删除 ^。这意味着字符串的开始。

于 2012-06-28T10:02:00.620 回答