具有 nordic/special 个字符的 Apache RewriteCond
Apache RewriteCond with nordic/special characters
我有两个域都指向同一台服务器。一个只有默认的 ascii 字符,一个包含北欧字符。带有 ascii 字符的只支持用于电子邮件,域只是重定向到带有特殊字符的那个。这按预期工作。
现在,在我的 .htaccess
文件中,我想检查域(带有特殊字符)是否缺少 www
。如果是这样,我想 301 重定向到带有 www
前缀的同一个域。这是我目前正在使用的代码。它或多或少是我以前用过很多次的样板,应该可以工作:
RewriteEngine On
RewriteBase /
RewriteCond %{HTTP_HOST} !^www\.dømain\.no [NC]
RewriteRule (.*) http://www.dømain.no/[R=301,L]
现在,问题是这个重定向总是被触发,即使域有 www
前缀。我尝试将域与没有特殊字符的域交换,它可以正常工作。
我不知道为什么 Apache 不能很好地处理我域中的特殊字符。我的理论是 %{HTTP_HOST}
由于字母 ø 而包含某种格式错误的内容,这导致条件始终为真。除此之外,我看不出我应该如何表达我的条件才能避免这种情况。
有什么方法可以让 Apache 以不同的方式处理字符?
RewriteEngine On
RewriteBase /
RewriteCond %{HTTP_HOST} !^www\.xn--dmain-vua\.no [NC]
RewriteRule (.*) http://www.xn--dmain-vua.no/ [R=301,L]
我有两个域都指向同一台服务器。一个只有默认的 ascii 字符,一个包含北欧字符。带有 ascii 字符的只支持用于电子邮件,域只是重定向到带有特殊字符的那个。这按预期工作。
现在,在我的 .htaccess
文件中,我想检查域(带有特殊字符)是否缺少 www
。如果是这样,我想 301 重定向到带有 www
前缀的同一个域。这是我目前正在使用的代码。它或多或少是我以前用过很多次的样板,应该可以工作:
RewriteEngine On
RewriteBase /
RewriteCond %{HTTP_HOST} !^www\.dømain\.no [NC]
RewriteRule (.*) http://www.dømain.no/[R=301,L]
现在,问题是这个重定向总是被触发,即使域有 www
前缀。我尝试将域与没有特殊字符的域交换,它可以正常工作。
我不知道为什么 Apache 不能很好地处理我域中的特殊字符。我的理论是 %{HTTP_HOST}
由于字母 ø 而包含某种格式错误的内容,这导致条件始终为真。除此之外,我看不出我应该如何表达我的条件才能避免这种情况。
有什么方法可以让 Apache 以不同的方式处理字符?
RewriteEngine On
RewriteBase /
RewriteCond %{HTTP_HOST} !^www\.xn--dmain-vua\.no [NC]
RewriteRule (.*) http://www.xn--dmain-vua.no/ [R=301,L]