apache - mod_rewrite 标志“NE”对于 %40 (@) 没有按预期工作
问题描述
我有一个规则
RewriteRule ^ "https://foo.bar.tld/?mail=some%40thing.com" [R=302,L]
在 Apache VHost 中。
但是 apache 将其发送为
HTTP/1.1 302 Found
Location: https://foo.bar.tld/?mail=some0thing.com
在回复中。
我已经尝试将 B 和/或 NE 标志用于 RewriteRule - 但没有任何帮助。%40 (@) 总是被“转换”。
重要提示:目标网址只是一个示例。我不能(!)更改目标网址,因为它来自用户配置/设置。因此,更改 url 不是一种选择,因为不是“编码”/转义它,因为我真的不知道 url 中的内容。我只是“知道”它是一个有效的 URI(用 php 中的 filter_var() 检查)。
我可以用 mod_rewrite 的 RewriteRule 做些什么来绕过字符串(url)作为 Location: 标签?没有任何修改?
解决方案
推荐阅读
- c++ - XCode编译:“未声明使用cin”我该如何解决?
- python - 用 R 编写的 RData 文件,无法用 Python 读取
- python - 来自 Python 的重复 MySQL 查询返回相同的数据
- java - 正确实现多态性,没有 Java 气味
- math - 关于骰子和硬币的任务
- python-3.x - 如何杀死所有通过python运行的后台异步进程?
- c# - 在 ASP.NET Core 中使用策略模式格式化 FilterAttribute 结果
- javascript - 仅允许在 textarea 中更改某些文本
- javascript - 取消模态编辑 - ReactJS
- python - 将图像链接到列表中的单词