2016-10-27 3 views
1

У меня есть два домена, которые указывают на один и тот же сервер. У одного есть только символы ascii по умолчанию, и один содержит носитель. Тот, у которого есть символы ascii, является только supposted, который будет использоваться для электронной почты, и домен просто перенаправляется на тот, у которого есть специальный символ. Это работает по назначению.Apache RewriteCond с nordic/специальными символами

Теперь, в моем файле .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, чтобы обрабатывать персонажа по-разному?

ответ

1

Использование IDN Conversion Tool:

RewriteEngine On 
RewriteBase/
RewriteCond %{HTTP_HOST} !^www\.xn--dmain-vua\.no [NC] 
RewriteRule (.*) http://www.xn--dmain-vua.no/$1 [R=301,L] 
+0

Спасибо, что работал как шарм. Я проверил HTTP-запрос и увидел фактический домен в инспекторе. Вид отдался. – OptimusCrime

 Смежные вопросы

  • Нет связанных вопросов^_^