服务器问答

Apache 服务器配置问题
0
2021-05-10 12:48:05
idczone
Nginx 反向代理 Apache2 服务器。因为一些原因,源站域名和反代域名不同。

Nginx 服务器绑定 rproxy.www.example.com ,反代 www.example.com

Apache 服务器绑国外服务器定 www.example.com ,用于 host 静态文件,在子目录 files/ 下有若干静态文件。

但是访问 rproxy.www.example.com/files,自动跳转到 www.example.com/files/,而访问 rproxy.www.example.com/files/ (后面多了斜杠)则不会。通过 curl 测试,发现不是 Nginx 的配置问题,而是 Apache 将不带斜杠访问目录 301 跳转到了带斜杠的目录地址。

也就是说,Apache 在默认情况下,会把访问目录的 URL 跳转到 ${PROTOCAL}://${HOST}/${DIR_NAME}/,而不是直接用相对路径跳转(搜了一下,好像用相对路径跳转是不符合 HTTP 规范的)

谷歌了很久,并没有发现好的解决方案,有说关闭自动加斜杠跳转的,但是确实有自动加斜杠的需求;有说在 Nginx 上配置替换网址的,但是个人希望在原站上解决问题;有说在 Apache 上绑定 rproxy.www.example.com (即反代的域名)然后 Nginx 发送对应 Host 的,似乎不失为一个解决方法,但感觉这样有点混乱……

现在请教一下大家,有没有什么好的方法可以解决这个问题?

试试 ngx_headers_more,改掉 response header

数据地带为您的网站提供全球顶级IDC资源
在线咨询
专属客服