htaccess查询字符串重定向到路径

时间:2017-04-01 09:18:11

标签: .htaccess redirect mod-rewrite

我有一个像about.php?lang = en的网址,我想将其更改为about.php / en 我试过了

<pre>
RewriteCond %{THE_REQUEST} ^GET\ /\?(([^&\s]*&)*)lang=([^&\s]+)&?([^\s]*)
RewriteRule ^(.*)$ /lang/%3?%1%4 [L,R=301]
</pre>

在htaccess但它不起作用。

1 个答案:

答案 0 :(得分:0)

您可以使用:

RewriteEngine on
#redirect /about.php?lang=lang to /about.php/lang
RewriteCond %{THE_REQUEST} /about\.php\?lang=([^\s&]+) [NC]
RewriteRule ^ /about.php/%1? [L,R]
#internally forward /about.php/lang to /about.php?lang=lang
RewriteRule ^about\.php/([^/]+)/?$ /about.php?lang=$1 [L]

不要删除最后的否则mod-rewrite会将旧的查询字符串附加到目标网址。