使用nginx重写包含百分号的网址

时间:2017-04-19 18:07:46

标签: nginx url-rewriting

我的网站需要采取其他网站发送的基本上格式错误的网址:

http://mysite/%SAMPLE_URL_STRING%

并使用nginx将其重定向到正确的URL。我尝试过的重写规则似乎都没有抓住它,而是总是返回400.

由于单个百分号,不描述编码字符,本身就是RFC(http://www.ietf.org/rfc/rfc1738.txt)中描述的不安全字符,我想这可能是一个不可逾越的问题。

但是,样本(非功能)重写规则包括:

rewrite /%SAMPLE_URL_STRING% /redirect.html permanent;
rewrite ^/\%SAMPLE_URL_STRING\%$ /redirect.html permanent;
rewrite /\%.*\% /redirect.html permanent;

甚至冒险进入UTF8:

rewrite (*UTF8)^\x25.*\x25$ /redirect.html permanent;

是否有可能任何包含%SAMPLE_URL_STRING%的网址无法被nginx重定向?

0 个答案:

没有答案