gpt4 book ai didi

apache - 在 apache 中将私有(private)域重定向到公共(public)域

转载 作者:行者123 更新时间:2023-12-02 03:43:39 25 4
gpt4 key购买 nike

我有两台 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>

执行此操作后,页面正在加载,但有两个问题:

  1. 网站页面的 html 代码中的所有链接都将采用 http://private:60001/ 的形式,因此当用户单击链接时,他们会收到 404 错误(因为他们与此没有联系)。 apache 有没有办法将这些链接重写到 http://public.com:60001/
  2. Ajax 调用不起作用 - 生成 404 错误。我认为这可能是因为与第 1 点相同的问题。

感谢帮助

最佳答案

Mod_proxy 不会解决您的问题。您需要从private 中删除您内容中的所有主机名。所以不要有像这样的链接:

<a href="http://private:60001/something/">

它们需要看起来像:

<a href="/something/">

否则你可以查看mod_proxy_html ,这实际上会破坏页面的内容(而不仅仅是请求)并将内容中的链接映射到私有(private),以便它们链接到公共(public)。参见 this link举一些例子。

本质上,一些东西是:

ProxyHTMLLogVerbose On
ProxyHTMLLinks a href
ProxyHTMLLinks link href
ProxyHTMLLinks form action
ProxyHTMLLinks script src for
ProxyHTMLLinks img src longdesc usemap
ProxyHTMLLinks iframe src

ProxyHTMLEvents onclick ondblclick onmousedown onmouseup \
onmouseover onmousemove onmouseout onkeypress \
onkeydown onkeyup onfocus onblur onload \
onunload onsubmit onreset onselect onchange

ProxyHTMLURLMap url\(http://private:60001([^\)]*)\) url(http://public:60001$1) Rihe

关于apache - 在 apache 中将私有(private)域重定向到公共(public)域,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18520780/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com