【发布时间】:2015-09-02 17:19:58
【问题描述】:
我有一个标准的 .htaccess RewriteRule,它默默地将任何对 webroot 的请求重写到包含 MantisBT 安装的子文件夹中。所以用户输入“example.com”,我的服务器会秘密地为他们提供来自“example.com/path/to/mantisbt”的文件。
现在的问题是 MantisBT 的索引页面会立即进行一些基于身份验证的逻辑路由,并发送 302 重定向到完整的“example.com/path/to/mantis/login”,这颠覆了我的重写。我试图让每个人都可以访问我的 MantisBT 安装,就好像它驻留在 webroot 中一样。
现在,我知道在 MantisBT 的 302 重定向到完整路径后,我可以再次将它们重定向回 webroot。但是,每次 MantisBT 执行某些路由逻辑时都将人们重定向两次似乎是一种肮脏的黑客行为。我也知道我可以破解 MantisBT 代码,但我讨厌每次发布新版本时都重新破解代码。
那么,有没有办法让 MantisBT(或任何其他应用程序)认为它驻留在根目录中,从而根据 webroot 相对 url 制作它的重定向路径?例如:“example.com/login”而不是“example.com/path/to/mantis/login”。
我真的更喜欢使用 Apache .htaccess 方法或 httpd.conf 更改来解决此问题。也许是 DocumentRoot 或 RewriteBase?
【问题讨论】:
标签: apache .htaccess url-redirection mantis