在Nginx重写规则中匹配%ff

我有一些可疑的请求进入我的服务器,包含%ff%FF (例如, /blog/%ffupdates/ 。我每天得到数以千计,并希望开始redirect到403.我目前有一个端点我用这个黑洞这样的事情,并想重写这些URL指向该端点。

目前,我正在尝试:

rewrite ^/.*?%ff.*?$ https://domain.com/forbidden permanent;

我完全明白,这可能太过于贪婪的比赛; 不过,我只是想尽一切办法来开始工作。

现在,当我尝试这一点,并查看debugging日志,好像%ff被转换为 (是的,这应该是问号钻石thingy)。

例如,在日志中有这样的事情:

*4 "^/.*?%ff.*?$" does not match "/blog/ updates/"

看来,因为%ff被转换,我实际上不能匹配string。

我使用SSL和SPDY运行Nginx 1.7.1。

有什么想法吗?

你应该能够通过正则expression式匹配。 例如:

 location ~ /\xff/ { return 403; }