我的网站有多个域重定向,还有一些浏览器语言重定向。
但现在我还想将其他所有(未知)浏览器语言重定向为默认语言。
例如,西班牙语(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]
答案 0 :(得分:3)
尝试以下
RewriteCond %{HTTP:Accept-language} !^(nl|fr|de|en).* [NC]
最后一个RewriteRule也可能导致重定向循环,因此您可能希望包含另一个RewriteCond
来检查主机是否已经是您要重定向到的主机。