2

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

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

<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}

我的问题是,即使我在结果页面上进行搜索,我如何才能将这个 url http://websitename.com/results/ {search-term2} 用于第二次搜索。我已经搜索了几个小时并修改了标志、规则和条件,但没有给我想要的东西。

4

1 回答 1

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]
于 2016-09-10T11:51:55.553 回答