我正在将nginx与glassfish一起使用。当我尝试提供一些静态资源(如图像)时,无法访问文件名中带有“ +”的文件。我试图仅通过glassfish访问这些文件,并且它可以将%2B识别为+。我试图使用重写将+重写为%2B,但似乎什么也没发生。
我在nginx.conf中关于重写部分的配置如下:
location /mnt/{
if ($request_uri ~ ^(.*)+(.*)) {
rewrite ^(.*)+(.*)$ $1%2B$2;
}
proxy_pass http://glassfish_server/mnt/;
}
从浏览器的控制台中,我可以看到请求仍然会去+号而不是%2B,但是如果我在URL中使用%2B,它将变成+号,这使得glassfish无法重新显示。