Я пытаюсь перенаправить запросы из домена умлаута в другой домен.
Мой следующий код работает с ЛЮБЫМ другим доменом, но не с умлаутом:
<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>
Однако, когда я вызываю домен умлаута, а затем копирую его из адресной строки Google Chrome, я получаю следующее:
http://xn--frankfurter-flhe-zwb.de/
Хотя, если я использую этот запутанный домен в моем файле htaccess вместо «настоящего» домена умляута, он тоже не работает.
Кто-нибудь знает, как сопоставить этот домен?
URL-адрес UTF-8 с умлаутом необходимо преобразовать в кодировку ACE (кодировка, совместимая с ASCII).
Вы можете использовать следующие онлайн-инструмент чтобы преобразовать международный домен с умляутами.
www.frankfurter-flöhe.de становится xn--frankfurter-flhe-zwb.de, и это то, что нужно использовать в перенаправлении htaccess.
Попробуйте использовать флаг NE, чтобы mod_rewrite не кодировал URL. Для получения дополнительной информации о NE: http://httpd.apache.org/docs/current/rewrite/flags.html#flag_ne
<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>
Если это не сработает, попробуйте использовать шестнадцатеричный эквивалент умлаута, как это предлагается в: 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]