apache 简单重写规则或查询字符串的重写条件

apache 简单重写规则或查询字符串的重写条件

我正在尝试向我的 htcaccess 文件添加重写规则,而我遇到问题的部分是查询字符串。我想将查询字符串参数 pid 添加到重写规则中。这两行代码都不起作用,如何为重写规则设置查询字符串。

RewriteRule browse/(.*)/?pid=(/d+) show_products.php?department=$1&pid=$2
RewriteRule browse/(.*)/?pid=([0-9]+) show_products.php?department=$1&pid=$2

应该看起来像

http://mysite.com/browse/department?pid=1

或者

http://mysite.com/browse/department/?pid=1

我已经让它这样做了,但是它没有问号,有人知道如何让它有问号吗

RewriteCond %{QUERY_STRING} ^$
RewriteRule browse/(.*)/pid=([0-9]+)$ show_products.php?department=$1&pid=$2 

http://mysite.com/browse/department/pid=1

答案1

RewriteRules 不直接匹配查询字符串。您需要使用类似

RewriteCond %{QUERY_STRING} ^pid=([0-9]+)
RewriteRule browse/(.*)/ show_products.php?department=$1&pid=%1

尚未测试但应该接近。

相关内容