搜索查询重定向mod_rewrie



我在httpd.conf中得到了以下设置:

RewriteCond %{REQUEST_FILENAME} !-d
RewriteCond %{REQUEST_FILENAME} !-f
RewriteRule /([^/]+) /?page=$1
RewriteCond %{QUERY_STRING} search=(.*)
RewriteRule (.*) /%1? [R=301]

当用户在搜索框中输入类似"帮助"的内容时,URL如下所示:

domain.com/help

工作起来很有魅力。

但是,如果用户在类似"论坛"的搜索框中再次输入内容,URL将看起来像:

域/帮助?search=论坛

我错过了什么。我希望所有的搜索查询都是:

domain.com/{SEARCH_CRITERIA}

更改规则的顺序,并在其他规则之前有301:

RewriteEngine on
RewriteCond %{QUERY_STRING} ^search=([^&]+) [NC]
RewriteRule ^ /%1? [R=301,L]
RewriteCond %{REQUEST_FILENAME} !-d
RewriteCond %{REQUEST_FILENAME} !-f
RewriteRule /([^/]+)/?$ /?page=$1 [L,QSA]

最新更新