我们有一个英文网站。现在我们希望用德语翻译这个网站。
index.html位于根文件夹中:www.mydomain.com/index.html
现在我要创建一个htaccess文件,将所有在浏览器中设置首选语言的用户重定向到德语(de,de-de,de-at,de-ch)到www.mydomain.com/de/ index.html的。所有其他用户应重定向到www.mydomain.com/en/index.html。
我尝试了很多,但我无法让它发挥作用。我真的不明白正则表达式的东西和它的用法。 大多数尝试最终都出现错误403或500.当前的htaccess不会以错误结束,但它不起作用。
htaccess现在是:
Options -Indexes +FollowSymLinks
RewriteEngine On
RewriteCond %{HTTP:Accept-Language} ^de [NC]
RewriteRule ^/(.*)$ /de/$1 [L]
RewriteRule ^/(.*)$ /en/$1 [L]
好像文件根本不起作用。当我打开www.mydomain.com时,它会打开www.mydomain.com/index.html
Htaccess和重写工作一般:
RewriteRule ^(.*)$ http://www.google.com/ [R=301,L]
作品。
如果我删除^
后面的斜杠RewriteRule ^(.*)$ /en/$1 [L]
我收到错误500.
我做错了什么?
我实际上希望服务器重定向到用户尝试打开的网页。因此,如果用户打开mydomain.com/index2.html,则应将其重定向到mydomain.com/xx/index2.html(而不是index.html)
有什么想法吗?
谢谢,
雅罗斯瓦夫
答案 0 :(得分:0)
您可以使用此规则:
Options -Indexes +FollowSymLinks
RewriteEngine On
RewriteRule ^(en|de)/ - [L,NC]
RewriteCond %{HTTP:Accept-Language} ^de [NC]
RewriteRule ^(.*)$ /de/$1 [L]
RewriteRule ^(.*)$ /en/$1 [L]