搜索查询重定向mod_rewrie

时间:2013-11-30 04:16:20

标签: php regex apache mod-rewrite redirect

我在httpd.conf中进行了以下设置:

RewriteCond %{REQUEST_FILENAME} !-d
RewriteCond %{REQUEST_FILENAME} !-f
RewriteRule /([^/]+) /?page=$1

RewriteCond %{QUERY_STRING} search=(.*)
RewriteRule (.*) /%1? [R=301]

当用户在“帮助”等搜索框中输入内容时,网址如下所示:

  

domain.com/help

像魅力一样。

但是,如果用户在“论坛”等搜索框中再次输入内容,则网址将如下所示:

  

域/帮助?搜索=论坛

我遗失了一些东西。我希望所有搜索查询都是:

  

domain.com/ {搜寻准则}

1 个答案:

答案 0 :(得分:0)

更改规则的顺序,并在其他规则之前有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]