语言查询字符串

时间:2018-03-19 12:53:30

标签: regex .htaccess mod-rewrite

我开发了一个php网站,我使用的语言脚本显示英文版本,如果lang查询字符串为en,德语为de等等。所以网址是website.com/?lang=en,为了让它变得友好,我使用了RewriteRule ^((en|de|cz|hu|ro|sk)?)/(.*) /$3?lang=$1 [QSA,NC,L] 现在的问题是它为website.com/en显示正确的语言,但它也在website.com/en/en/en/上显示。 我想重定向到404或一次/ en /.

我想将自动重定向从website.com/?lang=en设置为website.com/en /

1 个答案:

答案 0 :(得分:0)

试试这个:

RewriteEngine On
RewriteCond %{THE_REQUEST} ^[A-Z]{3,7}\s(.+)?\?lang=(en|de|cz|hu|ro|sk)\sHTTP.*$
RewriteRule ^         /%2%1? [L,R=301]
RewriteRule ^(en|de|cz|hu|ro|sk)/((?!((en|de|cz|hu|ro|sk)/)).*) /$2?lang=$1 [L]

注意:清除浏览器缓存,然后进行测试。