用请求uri重写搜索结果


Search results mod rewrite with request uri

我正在尝试为我的网站创建一个搜索表单与搜索引擎友好的url。

我在我的网站的每个页面上都有以下表单代码:

<form class="form" method="get" id="searchform" action="searchrd">

搜索

这也是我的htaccess文件:'
RewriteCond %{REQUEST_URI} searchrd$
RewriteCond %{QUERY_STRING} ^query=([^&]+)$
RewriteRule ^([^&]+)$ /results/%1? [R=301,L]
RewriteRule ^/?results/([^&]+)?$ results.php?query=$1 [NC]

我的问题如下:

例如,当我进入主页键入{search-term1}搜索时它会将我转到http://websitename.com/results/{search-term1}

这一步没问题

但是如果我尝试在结果页面上搜索{search-term2}我会得到这个url http://websitename.com/results/{search-term1}?query={search-term2}

我的问题是我怎么能有这个url http://websitename.com/results/{search-term2}第二个搜索,即使我做搜索结果页。我已经搜索了几个小时,修改了旗帜、规则和条件,但没有什么能满足我的要求。

在表单中使用绝对路径:

<form class="form" method="get" id="searchform" action="/searchrd">

并像这样重构你的规则:

RewriteEngine On
RewriteCond %{QUERY_STRING} ^query=([^&]+)$ [NC]
RewriteRule ^searchrd/?$ /results/%1? [R=301,L,NC,NE]
RewriteRule ^/?results/([^&]+)?$ results.php?query=$1 [NC,L,QSA]