【发布时间】:2013-09-02 11:13:06
【问题描述】:
我有两个 apache 网络服务器,一个是公共的,一个是私有的。要求是用户将访问 PUBLIC 域并从 PRIVATE 域获取内容。 PUBLIC 域应为空,并且仅包含用于用户身份验证的 .htaccess 文件。
所有的请求都会到达http://public.com:60001/,并被apache重写为http://private:60001/。用户无法直接访问 PRIVATE 域,但托管 PUBLIC 域的服务器已连接到它。
为了实现这一点,我更新了 PUBLIC 域的虚拟主机以包含以下内容:
<Directory "/wwwroot/public.com">
RewriteEngine on
RewriteBase /
RewriteRule ^(.*)$ http://private:60001/$1 [P]
ProxyPassReverse http://private:60001/
</Directory>
执行此操作后,页面正在加载,但有两个问题:
- 网站页面的 html 代码中的所有链接都将采用
http://private:60001/的形式,因此当用户单击链接时,他们会收到 404 错误(因为他们没有连接到该链接)。 apache 有没有办法将这些链接重写为http://public.com:60001/? - Ajax 调用不起作用 - 生成 404 错误。我认为这可能是因为与第 1 点相同的问题。
感谢您的帮助
【问题讨论】:
标签: apache .htaccess mod-rewrite mod-proxy