根据GET参数用.htaccess重写url

时间:2018-11-21 15:18:41

标签: .htaccess mod-rewrite

我要重写以下网址格式:

  

http://example.com/some/inner/page?param1=test&lang=en

成为

  

http://example.com/en/some/inner/page?param1=test

。因此,基本上我想使用“ lang” get参数并将其放在url的开头。我知道我必须在.htaccess中使用RewriteRule,但是必须编写的模式是什么?请注意,我还需要它同时适用于?lang=en?some-parameter=test&lang=en

1 个答案:

答案 0 :(得分:0)

您可以将此规则用作根.htaccess中最重要的规则:

RewriteEngine On

RewriteCond %{THE_REQUEST} \?(.*&)?lang=([^&]+)&?(\S*)\sHTTP [NC]
RewriteRule ^ /%2%{REQUEST_URI}?%1%3 [R=301,NE,L]

这将从查询字符串中的任何位置删除lang=参数,并使用前面相同参数的值进行重定向。