我的网站需要采取其他网站发送的基本上格式错误的网址:
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重定向?