如何修复 URL 和子文件夹中的 ProxyPass?

如何修复 URL 和子文件夹中的 ProxyPass?

我创建了一个代理通道,将路径 /vocab/arch 添加到我的本地主机实例。这是我使用的配置:

        <IfModule mod_proxy.c>

                ProxyPass /vocab/arch http://localhost:3000/
                ProxyPassReverse /vocab/arch http://localhost:3000/
                Alias /vocab/arch /assets/
        </IfModule>

        <Location />
                Require all granted
        </Location>

        RewriteEngine On
        RewriteRule  ^/vocab/arch   -  [L]
        RewriteRule  ^/(.*)    http://localhost:3000/$1  [P,L]
        ProxyPassReverse /vocab/arch     http://localhost:3000/

指向http://本地主机:3000/我的网络应用程序的登录页面如预期的那样http://localhost:3000/vocab/arch/en.html

但是点击“收藏”之类的链接时,我https://localhost:3000/en/collections.html代替https://localhost:3000/vocab/arch/en/collections.html

我该如何解决这个问题?

提前致谢

答案1

修复您的子主机。proxy-pass 不会重写来自其他 Web 服务器的响应。因此,如果其他服务器(在端口 3000 上)提供没有正确路径的 URL 的 href 和链接,您将准确看到您得到的结果。

即你的 localhost:3000 服务器正在返回链接至https://localhost:3000/en/collections.html代替https://localhost:3000/vocab/arch/en/collections.html

相关内容