我正在尝试做这样的事情http://myweb.com//page
如果第一个参数不存在,则仅处理第二个参数。
第一个是语言,它存储在会话中,但是可以更改为?lang=en
..
我正在尝试这样的事情,但它不起作用
RewriteRule ^([a-zA-Z_]+)?/([a-zA-Z0-9_-]+)$ index.php?lang=$1&page=$2
答案 0 :(得分:2)
尝试将它们作为2个单独的规则,因为删除了前导斜杠。
RewriteRule ^([a-zA-Z_]+)/([a-zA-Z0-9_-]+)$ index.php?lang=$1&page=$2 [L,QSA]
RewriteRule ^([a-zA-Z0-9_-]+)$ index.php?page=$1 [L,QSA]
答案 1 :(得分:1)
在我之前使用过的语言可切换网站上,我选择了始终在网址中使用该语言,它更容易实现,并且对用户来说更好看。
RewriteRule ^$ /en/ [L] #default language
RewriteRule ^([^/]+)/(.+)$ index.php?lang=$1&page=$2 [QSA,NE] # first "slug" is presumed always language the rest is a page identifier
此处不是指向/ en /您可以指导没有语言设置的用户,指向geoip脚本或用于填充用户代理字符串以获取语言代码的脚本,以使猜测更准确。