.htaccess重写语言重定向

时间:2014-07-15 16:40:49

标签: .htaccess mod-rewrite url-redirection

我想在我的网站中处理不同的语言。我的htaccess应该:

  • 将root重定向到/ browser-accept-language / if is(en | fr | it),否则重定向到/ en /如果浏览器语言不受支持
  • 将所有/(en | fr | it)/ path / page /?params重定向到/ path / page /?requestedlang = $ 1& params

这是我的代码:

RewriteCond %{HTTP:Accept-Language} ^([a-z]{2,3})[-,;]?
RewriteRule ^$ /%1/ [L]
# if %{HTTP:Accept-Language} is not (en|fr|it) redirect to /en/

RewriteRule ^(en|fr|it)/(.*)$  $2?requestedlang=$1&%{QUERY_STRING} [L]
#...other rules...#

但是不完整而且不起作用。我该如何解决?

感谢。

1 个答案:

答案 0 :(得分:1)

您可以使用:

RewriteEngine On

RewriteCond %{HTTP:Accept-Language} ^([a-z]{2,3})
RewriteRule ^$ /%1/ [L]

RewriteCond %{REQUEST_URI} !^/(en|it|fr)/
RewriteRule ^[a-z]{2,3}/$ /en/ [L]

RewriteRule ^(en|fr|it)/(.+)$ $2?requestedlang=$1 [L,QSA]