htaccess mod-rewrite语言覆盖

时间:2017-04-26 11:12:32

标签: .htaccess mod-rewrite

我在我的网站.htaccess文件中使用了一些mod-rewrite代码,将使用设置为各种语言的浏览器语言的用户重定向到我网站的不同版本。这很好用 - 但是......当用户想要查看主要的英文版本而不是根据浏览器的语言设置自动重定向到的版本时,我需要一种能够覆盖这些重写规则的方法。

因此,例如,用户A将其浏览器语言设置为韩语,他们访问example.com网站 - 重写规则将其设置为韩语并将其移至example.co.kr - 在example.co.kr上我有一个按钮,上面写着 - 给我看这个网站的英文版本(链接到example.com) - 然后链接回example.com ...但是当前然后重定向回example.co.kr作为重写脚本反对...

如何编写重写脚本以允许覆盖规则强制它在我想要的时候保留在example.com网站上??

我改写的代码是:

RewriteEngine On
RewriteBase /

#RewriteCond %{HTTP:Accept-Language} ^en [NC]
#RewriteRule ^$ https://example.com/ [L,R=301]

RewriteCond %{HTTP:Accept-Language} ^ko [NC]
RewriteRule ^$ https://example.co.kr/ [L,R=301]

RewriteCond %{HTTP:Accept-Language} ^pt [NC]
RewriteRule ^$ https://example.com/br/ [L,R=301]

RewriteCond %{HTTP:Accept-Language} ^pt-PT [NC]
RewriteRule ^$ https://example.com/br/ [L,R=301]

RewriteCond %{HTTP:Accept-Language} ^pt-BR [NC]
RewriteRule ^$ https://example.com/br/ [L,R=301]

RewriteCond %{REQUEST_FILENAME} !-d
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-l

RewriteRule ^(|ko|pt|pt-PT|pt-BR)/?$ https://example.com/ [QSA,NC,L]

有什么想法吗?

干杯,

1 个答案:

答案 0 :(得分:1)

您需要修改规则以查找特殊查询参数,例如notKO喜欢这样:

RewriteEngine On
RewriteBase /

RewriteCond %{QUERY_STRING} !notKO [NC]
RewriteCond %{HTTP:Accept-Language} ^en [NC]
RewriteRule ^$ https://example.com/ [L,R=301]

RewriteCond %{QUERY_STRING} !notKO [NC]
RewriteCond %{HTTP:Accept-Language} ^ko [NC]
RewriteRule ^$ https://example.co.kr/ [L,R=301]

RewriteCond %{QUERY_STRING} !notKO [NC]
RewriteCond %{HTTP:Accept-Language} ^pt [NC]
RewriteRule ^$ https://example.com/br/ [L,R=301]

RewriteCond %{QUERY_STRING} !notKO [NC]
RewriteCond %{HTTP:Accept-Language} ^pt-PT [NC]
RewriteRule ^$ https://example.com/br/ [L,R=301]

RewriteCond %{QUERY_STRING} !notKO [NC]
RewriteCond %{HTTP:Accept-Language} ^pt-BR [NC]
RewriteRule ^$ https://example.com/br/ [L,R=301]

RewriteCond %{REQUEST_FILENAME} !-d
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-l
RewriteRule ^(|ko|pt|pt-PT|pt-BR)/?$ / [NC,L]

现在,您需要在?notKO按钮点击上开始发送show me abc version of this website查询参数。

在测试此更改之前清除浏览器。