我遇到一个问题,一封营销电子邮件发送给客户时,其中包含指向我们网站的链接,但结尾处有一个空格。换句话说,它变成了类似这样的内容http://www.example.com/somepage/%20
。如果再发送一封包含正确链接的电子邮件,客户可能会将其视为垃圾邮件,因此我们正在尝试解决这个问题。
我尝试添加重定向规则.htaccess
,但在到达那一点之前就失败了。
Apache 错误日志显示以下错误:
(20024)给定的路径格式错误或包含无效字符:无法将 GET /cost-per-invoice-calculator/%20 HTTP/1.1 映射到文件
有什么建议吗?这是 Windows 服务器上的 Apache,如果相关的话...
答案1
看起来这是被 Apache 团队赋予状态 WONTFIX 的事情:https://issues.apache.org/bugzilla/show_bug.cgi?id=41441
答案2
.htaccess 在游戏中被解析得相当晚,我敢打赌 Cez 是在他的 httpd.conf 中这样做的,允许它在空间上触发坏字符检查之前进行处理。
此外,如果您的 Apache 由某种负载平衡器或代理或诸如此类的东西支撑,那么在那里进行重写肯定会起作用。
答案3
好的,这是在 Linux 服务器上,但我似乎没有遇到重定向包含空格的 URL 的问题:
RewriteEngine on
RewriteRule ^.*test\ $ / [R=301,L]
这将执行以下重定向:
http://localhost/test%20 -> http://localhost/
编辑:是的,按照埃内斯特·穆勒的评论,这是在服务器配置中,而不是在 .htaccess 中