我在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]