我正在创建用户可以搜索帖子并使用各种参数对其进行排序的网站。
我原来的网址看起来像这样。
www.mydomain.com/posts.php?mode=search&category=all&q=this is search query&verified=true
所以我在htaccess文件中创建了这样的重写规则。
RewriteRule ^search/all/(.*)/verified/$ posts.php?mode=search&category=all&q=$1&verified=true [L]
但是当我通过
检查$ _GET数组时print_r($_GET);
将正则表达式后的evrything发送到参数" q"。
Array
(
[mode] => search
[category] => all
[q] => this is search query/verified
)
我怎样才能使它工作,不要在重写规则中的正则表达式之后发送evrything到" q"参数和特定参数,如。
我希望我的输出像
Array
(
[mode] => search
[category] => all
[q] => this is search query
[verified] => true
)
答案 0 :(得分:2)
搜索字符串=> B
标志
由于您的搜索字符串正在编码和解码,我们需要使用B
标记。
试试这个:
RewriteRule ^search/all/([^/]+)/verified/?$ posts.php?mode=search&category=all&q=$1&verified=true [L,B]
我还修复了您的捕获组:[^/]+
匹配一个或多个不是/
的字符
<强>参考强>