【发布时间】:2012-08-18 11:26:45
【问题描述】:
我有以下问题,已经解决了几十次,但我没有找到任何解决方案。
我正在编写一个博客引擎,希望拥有漂亮的 URL,因此我在 .htaccess 中使用 Apache mod_rewrite。 /page/3 => /?s=3 之类的东西工作得很好,因为我可以在 PHP 脚本中编写漂亮的 URL。但是我有一个使用method="get" 进行搜索的表单字段来提交,所以除了将客户端指向丑陋的 URL 之外我别无选择。所以我想要的是一种Redirect 客户端然后Rewrite 服务器的URL:/?q=foo =client=> /search/foo =server=> /?q=foo。 (还有/?q=foo&s=2 => /search/2/foo)
不知怎的,我的规则不起作用,我希望你能帮助我。
RewriteRule ^(index\.php)?\?q=(.*)$ search/$2 [R,L]
RewriteRule ^(index\.php)?\?q=(.*)&s=(.*)$ search/$3/$2 [R,L]
RewriteRule ^search/(\d+)/(.*)/?$ index.php?q=$2&s=$1 [NC,L]
RewriteRule ^search/([^/]*)/?$ index.php?q=$1 [NC,L]
【问题讨论】:
标签: .htaccess mod-rewrite redirect url-rewriting