.htaccess 将所有其他浏览器语言重定向到默认语言

标签 .htaccess redirect

我有一个具有多个域重定向和多个浏览器语言重定向的网站。

但现在我还想将所有其他(未知)浏览器语言重定向到默认语言。

例如,西类牙语 (es) 浏览器语言被重定向到/nl。
而它应该被重定向到/en,就像所有其他未知语言一样。
请参阅我的最后一个 .htaccess 规则,该规则不起作用。

.htaccess:

RewriteEngine On

# DOMAIN REDIRECTS
# ----------------
RewriteCond %{HTTP_HOST} ^(www\.)?example.eu [NC]
RewriteRule ^(.*)$ http://www.example.com/nl/ [L,R=301]

RewriteCond %{HTTP_HOST} ^(www\.)?example.be [NC]
RewriteRule ^(.*)$ http://www.example.com/nl/ [L,R=301]

RewriteCond %{HTTP_HOST} ^(www\.)?example.nl [NC]
RewriteRule ^(.*)$ http://www.example.com/nl-nl/ [L,R=301]

RewriteCond %{HTTP_HOST} ^(www\.)?example.fr [NC]
RewriteRule ^(.*)$ http://www.example.com/fr/ [L,R=301]

RewriteCond %{HTTP_HOST} ^(www\.)?example.de [NC]
RewriteRule ^(.*)$ http://www.example.com/de/ [L,R=301]

RewriteCond %{HTTP_HOST} ^(www\.)?example.co.uk [NC]
RewriteRule ^(.*)$ http://www.example.com/en/ [L,R=301]

# LANGUAGE REDIRECTS
# ------------------
RewriteCond %{HTTP:Accept-language} ^nl [NC]
RewriteRule ^$ http://www.example.com/nl/ [L,R=301]

RewriteCond %{HTTP:Accept-language} ^fr [NC]
RewriteRule ^$ http://www.example.com/fr/ [L,R=301]

RewriteCond %{HTTP:Accept-language} ^de [NC]
RewriteRule ^$ http://www.example.com/de/ [L,R=301]

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

# NOT WORKING
# -----------
RewriteCond %{HTTP:Accept-language} ^!(nl|fr|de|en) [NC]
RewriteRule ^$ http://www.example.com/en/ [L,R=301]

最佳答案

尝试以下

RewriteCond %{HTTP:Accept-language} !^(nl|fr|de|en).* [NC]

此外,最后一个 RewriteRule 可能会导致重定向循环,因此您可能希望包含另一个 RewriteCond 来检查主机是否已经不是您要重定向到的主机。

关于.htaccess 将所有其他浏览器语言重定向到默认语言,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32276010/

相关文章:

apache - 如何使用 htaccess 重定向图像更改路径?

linux - 如何在 Apache 服务器上自动将 HTTP 重定向到 HTTPS?

.htaccess - 仅通过 HTTP 访问网站,除了 2 个页面

Django:在 HttpResponse 之后重定向

reactjs - 如果 URL 无效,如何重定向到主页?

linux - 使用端口 iptables 将域重定向到 IP

php - 如何使用 php 控制 .htaccess 或如何在 .htaccess 文件中输入 php 代码

javascript - 当用户点击离开页面 JAVASCRIPT 时重定向到特定 URL

redirect - Web 转发或 CNAME 解决方案 - 哪个是正确的?

php - 在magento中将http上的整个页面重定向到https