我通过将视图文件加载到模板(index.php)来构建单页应用程序 - 这种方法效果很好 - 除了搜索。
我的网址
http://testdomain.loc/members/search/?s=foo+bar
我的规则
RewriteRule ^members/search/(.*)$ index.php?view=members-search&keywords=$1 [L]
这是加载正确的视图,但它没有传递关键字参数,所以当我print_r($_GET)
时,这就是我看到的......
(
[view] => members-search
[keywords] =>
)
这样做的正确方法是什么?
答案 0 :(得分:0)
RewriteRule仅匹配路径,而不是查询参数。您希望使用QSA
将原始查询参数附加到重写的网址:
RewriteRule ^members/search/ index.php?view=members-search [L,QSA]
如果你真的想匹配查询参数,你必须在RewriteCond中这样做:
RewriteCond %{QUERY_STRING} s=(.*)
RewriteRule ^members/search/ index.php?keywords=%1 [L]
(不太确定这是否会完全正常,但沿着这些方向发展。QSA
无论哪种方式都会更简单。)