У меня есть то, что я считал очень простым сценарием перенаправления URL. Посетите простой и легко запоминающийся URL-адрес mydomain, и вы будете перенаправлены на очень сложный облачный адрес.
Это то, что у меня есть внутри виртуального хоста apache2.
ServerName clock.mydomain.com
RewriteEngine On
RewriteRule ^/$ https://sub.example.com/service/#/12345/login/webclock/1 [R=301,NC,L]
Проблема заключается в #
в целевом URL. #
кодируется в html как %23
, поэтому браузер ищет и не находит https://sub.example.com/service/%23/12345/login/webclock/1
Как я могу это исправить? Все, что я читаю, посвящено работе со специальными символами в URL-адресе источника, а не в URL-адресе назначения.
Из документация mod_rewrite вам нужно использовать флаг NE
(без выхода), когда в вашем правиле перезаписи есть хэш.
ServerName clock.mydomain.com
RewriteEngine On
RewriteRule ^/$ https://sub.example.com/service/#/12345/login/webclock/1 [R=301,NC,NE,L]