如何使用mod_rewrite重写搜索的动态网址?

时间:2011-02-10 22:22:27

标签: .htaccess url mod-rewrite redirect rewrite

我有一个有搜索字段的网上商店。当我搜索时,我被转发到这样的链接:

webshopdomain.com/index.php?route=product/search&keyword= 我的搜索词组

(好吧,它更像是这样:webshopdomain.com/index.php?route=product/search&keyword=my%20search%20phrase)

我需要在htaccess中添加以下内容:webshopdomain.com/search/my%20search%20phrase 显示上述网址的内容?

我一直在使用这个工具(http://www.webconfs.com/url-rewriting-tool.php),但还没有理解如何抓住搜索短语并将其放入静态网址。

我也一直在谷歌搜索,但由于缺乏正确的措辞,我没有找到答案。

谢谢: - )

编辑:

我可以用这个吗? (只是想一想,要测试......)

Options +FollowSymLinks
RewriteEngine on
RewriteRule search/(.*) index.php?route=product/search&keyword=$1
RewriteRule search/(.*)/ index.php?route=product/search&keyword=$1

2 个答案:

答案 0 :(得分:0)

为避免递归,您需要查看request line

RewriteCond %{THE_REQUEST} ^GET\ /index\.php\?route=product/search&keyword=([^&\ ]*)&*([^\ ]+)?
RewriteRule ^index\.php$ /search/%1?%2 [L,R=301]

答案 1 :(得分:0)

这很简单,但不得不重新排列htaccess文件本身。

RewriteRule ^ search /(.*)$ index.php \?route = product / search& keyword = $ 1