我使用以下规则进行语言翻译。
两者都很好:
RewriteRule ^([a-z]{2})/?$ /index.php?act=setlang&val=$1 [L,CO=LANG:$1:%{HTTP_HOST}]
RewriteRule ^([a-z]{2})/([a-zA-Z0-9-]+)\.php$ $2.php?act=setlang&val=$1 [L,CO=lang:$1:%{HTTP_HOST}]
所以请访问www.mysite.com/en/test.php,这可以按预期工作。
但是,如果我从mysite.com to
mysite.com/(2letterlangcodehere)更改基本网址
所以所有的链接自动都有lang前缀,然后一切都搞砸了(我认为这是由于相对路径,因为希望找到mysite.com/(2letterlangcodehere)下的某些资源,这显然不存在,因为我没有在物理上创建了文件夹。
我怎么能让mysite.com/(langcodehere)只是直观地显示并执行上面的规则,但实质上这个文件夹只是指向mysite.com/的脚本,css,源视角就可以了。 htaccess?
答案 0 :(得分:1)
尝试在现有规则之前插入此规则:
RewriteRule ^[a-z]{2}/(.+?\.(?:jpe?g|gif|bmp|png|tiff|css|js))$ /$1 [L,NC,R=301]
如果这不起作用,那么您有两个选择:
http://
或斜杠/
开头。<base href="/" />