我正在尝试使用搜索引擎友好的网址为我的网站创建搜索表单。
我的网站每个页面都有以下表单代码:
<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}搜索结果页面,我会收到此网址http:// websitename.com/results/ {search-term1}?query={search-term2}
我的问题是,即使我在搜索结果页面上进行搜索,如何在第二次搜索时使用此网址http://websitename.com/results/ {search-term2}。我已经搜索了几个小时并修改了标志,规则和条件,但没有任何东西给了我想要的东西。
答案 0 :(得分:0)
在表单操作中使用绝对路径:
<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]