.htaccess перенаправить домен umlaut

Я пытаюсь перенаправить запросы из домена umlaut в другой домен.

Мой следующий код работает с любым другим доменом, но не умлаут:

<IfModule mod_rewrite.c>
  RewriteCond %{HTTPS} !=on
  RewriteCond %{HTTP_HOST} ^(www\.)?frankfurter-flöhe\.de/$ [NC]
  RewriteRule ^ http://kinderkultur-frankfurt.de/frankfurter-floehe-theaterprogramm.html [R=301,L]
</IfModule>

Однако, когда я вызываю домен umlaut и затем копирую его из адресной строки Google Chrome, я получаю следующее:

http://xn--frankfurter-flhe-zwb.de/

Хотя, если я использую этот обфусцированный домен в своем файле htaccess вместо "реального" домена umlaut, он тоже не будет работать.

У кого-нибудь есть идеи, как сопоставить этот домен?

2 ответа

Попробуйте использовать флаг NE, чтобы предотвратить mod_rewrite от кодирования URL. Для получения дополнительной информации о NE: http://httpd.apache.org/docs/current/rewrite/flags.html

<IfModule mod_rewrite.c>
  RewriteCond %{HTTPS} !=on
  RewriteCond %{HTTP_HOST} ^(www\.)?frankfurter-flöhe\.de/$ [NC,NE]
  RewriteRule ^ http://kinderkultur-frankfurt.de/frankfurter-floehe-theaterprogramm.html [R=301,L]
</IfModule>

Если это не работает, попробуйте использовать HEX-эквивалент umlaut, как это предлагается в: https://stackoverflow.com/questions/11107375/umlauts-in-htaccess-redirects

Вы пробовали с:

RewriteEngine On
RewriteCond %{HTTP_HOST} ^frankfurter-flöhe.de$ [OR]
RewriteCond %{HTTP_HOST} ^www.frankfurter-flöhe.de$
RewriteRule (.*)$ http://kinderkultur-frankfurt.de/frankfurter-floehe-theaterprogramm.html [R=301,L]

URL-адрес UTF-8 с умлаутом необходимо преобразовать в кодировку ACE (кодировка, совместимая с ASCII).

Вы можете использовать следующий онлайн-инструмент для преобразования международного домена с умлаутом.

http://www.xn--frankfurter-flhe-zwb.de становится xn--frankfurter-flhe-zwb.de, и это то, что нужно использовать в перенаправлении htaccess.

Другие вопросы по тегам