重写可以将%26重写为特殊字符序列的规则

时间:2012-08-13 14:54:40

标签: apache rewrite

我的网站提供来自tocmat的文档,文件名中有时会有&个。

所以

nick&janes.doc

以下是我们访问的网址:

http://mysite.com/sub/nick%26janes.doc

出于某种原因,由于某些错误,我们的Apache + OpenSSL版本无法正确重写。所以%26变成了&然后请求全部被破坏,因为http://mysite.com/sub/nick&janes.doc

升级OpenSSL将解决问题,但不幸的是,这几个月都不是一个选择。

作为解决方法,我们正在尝试创建一个可以将任何%26转换为特殊字符序列的重写规则....让我们说___--___。然后在Tomcat上,我们可以使用过滤器来修复URL,从而没有更多问题。

任何人都知道如何编写这样的重写规则?

1 个答案:

答案 0 :(得分:0)

RewriteRule ^(.*)&(.*)$ $1__-__$2 [N]

这会将foo%26bar变为foo__-__bar

此时,您可以使用Tomcat过滤器将__-__的任何网址更改回%26