首页 > 解决方案 > Apache重定向到其他网站

问题描述

首先,我将解释我在 cake3 中构建的两个网站在两个不同的服务器上运行的场景。我需要的是: http ://demo.com/lms - lms 是我用于代理传递的后缀。

ProxyPass /lms/ http://lms.com/
ProxyPassReverse "/lms/" " http://lms.com/"

所以重定向在热保护下工作正常。

就像我在 URL 中输入http://demo.com/lms时一样 ,LMS 站点在不更改 URL 的情况下成功打开。

但是当我点击 LMS 网站上的某个链接时,我遇到的问题是,它没有用。我在单击 /users/login 之类的链接时看到的内容。我的 URL 来自 http://demo.com/users/login这是无效的。

如果我手动附加 lms 并点击http://demo.com/lms/users/login 那么它工作正常。

那么如何在 .htaccess 文件中为每个蛋糕 URL 附加前缀,以便我的第二个站点链接在那里可用?

123456

标签: apacheredirect

解决方案


Apache 的 mod_proxy 并非旨在充当任意网站的代理。它没有任何重写通过它的 HTML 以编辑 URL 的功能,因此它们映射到您网站上(稍微)不同的 URL 结构。

您需要编写自己的代码来查找每个 HTTP Location 标头、可以包含 URL 的 HTML 属性、每个 CSSurl()值、由 JavaScript 动态生成的每个 URL(JS 是非常困难的地方)并确定该值是否是相对路径(您需要保留)、绝对路径(您需要重新映射)、同一站点的绝对 URL(您需要重新映射)或另一个站点的绝对 URL(您不会t)。

真的很难。


推荐阅读