Apache 错误,URL 以空格结尾--如何修复?

Apache 错误,URL 以空格结尾--如何修复?

我遇到一个问题,一封营销电子邮件发送给客户时,其中包含指向我们网站的链接,但结尾处有一个空格。换句话说,它变成了类似这样的内容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 中

相关内容