【发布时间】:2019-06-13 15:05:51
【问题描述】:
我需要使用 .htaccess 文件中的 RewriteRule 将 url 参数中的任何 ® 重写为 %C2%AE (UTF-8)。我需要这个,因为 Internet Explorer 不接受这个特殊字符,其他浏览器是。无法更改网址,因为它是在我无法触及的范围内生成的。
要重写的url示例是:
https://www.example.com/training/some-training/subscribe/?t=Some+Training®&id=81
这需要重写为:
https://www.example.com/training/some-training/subscribe/?t=Some+Training%C2%AE&id=81
® 可以出现在参数中的任何位置。如果可能的话,最好只需要在 Internet Explorer 上重写,但也许这只是一厢情愿。
有没有人可以帮助我使用 RewriteRule 表达式来处理这种情况?谢谢。
【问题讨论】:
-
我不确定这里发生了什么顺序,但如果问题是 IE,那么在 IE 尝试发出请求之前,URL 需要在 HTML 中正确地进行 URL 编码。当
.htaccess能够处理请求时,IE 已经发送(或尝试发送)?那么,为时已晚?
标签: apache .htaccess mod-rewrite