我在我的网站上添加了翻译,并使用来自lang
等网址的GET变量example.com?lang=en
来显示正确的语言。
我想让它看起来像example.com/en
。
example.com/somePage.php?lang=en
同样应该看起来像example.com/en/somePage.php
语言参数在域名后面总是2个字母,因此始终为example.com/xx.../.../...whatever-url
如果未给出任何内容(例如example.com
或example.com/whatever-url
),则en
为默认
所以我认为我们需要考虑到如果有一个名为en
的文件夹或文件或其他什么,它应该优先考虑该文件夹/文件。但是不知道如何处理所有必需的过滤。
我试过了,但是失败了(当我去/en
时说找不到页面)
但example.com/en/index.php
有效。
RewriteEngine On
RewriteCond %{THE_REQUEST} \s/+([^/]+)/\?lang=([^\s&]+) [NC]
RewriteRule ^ /%2/%1? [R=302,L]
RewriteCond %{REQUEST_FILENAME} !-d
RewriteCond %{REQUEST_FILENAME} !-f
RewriteRule ^([a-z]{2})/([^/]+)/?$ $2/?lang=$1 [L,QSA]