V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
baobao1270
V2EX  ›  服务器

Apache 服务器配置问题

  •  
  •   baobao1270 · 2019-06-16 02:19:34 +08:00 · 4030 次点击
    这是一个创建于 1970 天前的主题,其中的信息可能已经有所发展或是发生改变。
    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 的,似乎不失为一个解决方法,但感觉这样有点混乱……

    现在请教一下大家,有没有什么好的方法可以解决这个问题?
    1 条回复    2019-06-16 08:27:06 +08:00
    AngryPanda
        1
    AngryPanda  
       2019-06-16 08:27:06 +08:00 via Android
    试试 ngx_headers_more,改掉 response header
    关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   实用小工具   ·   1356 人在线   最高记录 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 22ms · UTC 17:39 · PVG 01:39 · LAX 09:39 · JFK 12:39
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.