0

如果用户的浏览器语言是捷克语,我们的网站目前会将用户从我们的根域重定向到我们的捷克子目录,如下所示:

RewriteCond %{HTTP_HOST} ([^.]+).mydomain.com [NC]
RewriteCond %{HTTP:Accept-Language} (cs) [NC]
RewriteRule ^$ /cs/ [L,R=301]

但是,由于我不会浪费您的时间,我们的登录页面从: mydomain.com/cs/loginmydomain.com/dashboard - 我们想要一个条件,如果他们的用户重定向到mydomain.com/cs/dashboard浏览器语言是捷克语(代码:cs)。您可以修改上述条件吗?我不确定 / 在这些 RewriteConds 中的去向!非常感谢。

4

1 回答 1

2

在公共根目录的 .htaccess 文件中试试这个:

RewriteCond %{HTTP_HOST} \.mydomain\.com$
RewriteCond %{HTTP:Accept-Language} cs [NC]
RewriteRule ^dashboard/?$ /cs/dashboard [R=permanent]

(如果您将这些指令添加到 httpd.conf 文件,则在 RewriteRule 模式的开头添加一个正斜杠,使其变为^/dashboard/?$。我假设您使用的是不需要正斜杠的 .htaccess 。 )

如果字符串“cs”出现在访问者浏览器发送的 HTTP Accept-Language 标头的值中的任何位置,/dashboard/dashboard/应该重定向(使用 301 状态代码)请求。/cs/dashboard

但是,这可能不是进行内容协商的最佳方式。首先,您的永久重定向可能会使网络爬虫误以为 /dashboard URL 已永久更改为 /cs/dashboard 并且他们不会意识到这是有条件的。其次,如果您使用的是由 PHP 等语言处理的登录脚本,那么让该脚本检测语言并在用户完成登录后指示重定向可能更容易。

于 2013-04-12T18:27:18.407 回答