目标中带有特殊字符的重定向 URL

Redirection with special characters in the destination URL

我有一个我认为非常简单的 URL 重定向方案。访问一个简单好记的mydomainURL,然后被重定向到非常复杂的云地址。

这是我在 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.

the mod_rewrite documentation 开始,当您的重写规则具有散列时,您需要使用 NE(无转义)标志。

ServerName clock.mydomain.com   
RewriteEngine On
RewriteRule ^/$ https://sub.example.com/service/#/12345/login/webclock/1 [R=301,NC,NE,L]