【问题标题】:mod_rewrite search url issuemod_rewrite 搜索 url 问题
【发布时间】:2015-03-22 13:36:51
【问题描述】:

我正在通过将视图文件加载到模板 (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] => 
)

这样做的正确方法是什么?

【问题讨论】:

标签: php .htaccess mod-rewrite


【解决方案1】:

RewriteRule 只匹配路径,不匹配查询参数。您需要使用QSA 将原始查询参数附加到重写的 URL:

RewriteRule ^members/search/ index.php?view=members-search [L,QSA]

如果你真的想匹配查询参数,你必须在 RewriteCond 中这样做:

RewriteCond %{QUERY_STRING} s=(.*)
RewriteRule ^members/search/ index.php?keywords=%1 [L]

(不太确定这是否会完全按原样工作,但沿着这些思路工作。QSA 无论如何都会简单得多。)

【讨论】:

  • 或使用:RewriteRule ^members/search/ index.php?view=members-search&keywords=%1 [L]
  • 您和 donald123 的使用 QSA 的建议让我得到了正确答案。谢谢!
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2017-05-17
  • 1970-01-01
  • 2023-03-14
  • 2014-03-29
  • 1970-01-01
  • 2012-11-26
  • 1970-01-01
相关资源
最近更新 更多