如果语言是捷克语,则RewriteCond重定向到子文件夹

时间:2013-04-12 17:45:54

标签: .htaccess mod-rewrite

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

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

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

1 个答案:

答案 0 :(得分: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访问者浏览器发送的标题。

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