Apache2 mod_substitute 不修改 URL

Apache2 mod_substitute 不修改 URL

我正在尝试使用 Apache2 作为反向代理来访问在 Docker 容器内运行的应用程序 (calibre web)。由于该应用程序正在使用重定向(更多详细信息这里),我正在尝试使用 apache 的mod_substitute修改重定向中的 URL,使其指向正确的 URL。我在名为的文件中写入了以下内容calibreweb.conf,并启用了网站和substitute模块。

<Location /calibre-web>
    ProxyPass http://127.0.0.1:8083
    ProxyPassReverse http://127.0.0.1:8083
    AddOutputFilterByType SUBSTITUTE text/html
    Substitute "s|https://subdomain.example.com/|https://subdomain.example.com/calibre-web/|i"

</Location>

问题是,重启 Apache 后,该模块没有任何作用。为了进行合理性检查,我尝试将替代模式更改为Substitute "s|admin|user|i",因为第一个重定向包含admin,但我仍然被重定向到。在该行上方subdomain.example.com/admin/dbconfig添加也无济于事。还删除了内容类型过滤器,以便文件变为SetOutputFilter SUBSTITUTE,DEFLATEAddOutputFilterByType

<Location /calibre-web>
    ProxyPass http://127.0.0.1:8083
    ProxyPassReverse http://127.0.0.1:8083
    Substitute "s|https://nas.gtpware.eu/|https://nas.gtpware.eu/calibre-web/|i"

</Location>

没有修复。知道为什么这不起作用吗?在我看来,它看起来像 Apache2 文档中给出的示例。谢谢你的帮助,

GTP95

答案1

事实证明 Calibre web 在他们的 wiki 中有一个可行的示例这里。归结起来就是:

<Location /calibre-web >
        RequestHeader set X-SCRIPT-NAME /calibre-web
        RequestHeader set X-SCHEME https
        ProxyPass http://localhost:8083/
        ProxyPassReverse http://localhost:8083/
        ProxyPassReverseCookiePath  /  /calibre-web/
</Location>

相关内容