我开发了一个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 /
答案 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]
注意:清除浏览器缓存,然后进行测试。