我面临从查询字符串中获取变量的问题。我已经为我的页面使用了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上获取页面变量我正在重定向但是没有那个页面变量
提前谢谢
答案 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)
你应该从正则表达式中删除^。它表示字符串的开头。