Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/.htaccess/6.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
.htaccess 带有北欧/特殊字符的Apache RewriteCond_.htaccess_Mod Rewrite_Apache2 - Fatal编程技术网

.htaccess 带有北欧/特殊字符的Apache RewriteCond

.htaccess 带有北欧/特殊字符的Apache RewriteCond,.htaccess,mod-rewrite,apache2,.htaccess,Mod Rewrite,Apache2,我有两个域都指向同一台服务器。一个只有默认的ascii字符,另一个包含北欧字符。带有ascii字符的域只支持用于电子邮件,而域只需重定向到带有特殊字符的域。这正是我们想要的 现在,在我的.htaccess文件中,我想检查域(带有特殊字符)是否缺少www。如果是,我想301重定向到前缀为www的同一个域。这是我目前正在使用的代码。这或多或少是我以前多次使用过的样板文件,应该可以使用: RewriteEngine On RewriteBase / RewriteCond %{HTTP_HOST} !

我有两个域都指向同一台服务器。一个只有默认的ascii字符,另一个包含北欧字符。带有ascii字符的域只支持用于电子邮件,而域只需重定向到带有特殊字符的域。这正是我们想要的

现在,在我的
.htaccess
文件中,我想检查域(带有特殊字符)是否缺少
www
。如果是,我想301重定向到前缀为
www
的同一个域。这是我目前正在使用的代码。这或多或少是我以前多次使用过的样板文件,应该可以使用:

RewriteEngine On
RewriteBase /
RewriteCond %{HTTP_HOST} !^www\.dømain\.no [NC]
RewriteRule (.*) http://www.dømain.no/$1[R=301,L]
现在的问题是,即使域具有
www
前缀,也始终会触发此重定向。我试着将域与没有特殊字符的域交换,它正常工作

我不知道为什么Apache不能很好地处理我域中的特殊角色。我的理论是,
%{HTTP_HOST}
由于字母ø而包含某种格式错误的内容,这导致条件始终为真。除此之外,我不知道我应该如何表达我的情况,否则,以避免这一点

有没有办法告诉Apache以不同的方式处理角色?

使用:


谢谢你,这很有魅力。我检查了http请求,并在inspector中看到了实际的域。有点泄露了。
RewriteEngine On
RewriteBase /
RewriteCond %{HTTP_HOST} !^www\.xn--dmain-vua\.no [NC]
RewriteRule (.*) http://www.xn--dmain-vua.no/$1 [R=301,L]