如何让 Apache2 仅使用/响应 IP 地址

如何让 Apache2 仅使用/响应 IP 地址

我有一台位于防火墙后面的 apache2 服务器。外部地址是 24.89.xxx.xxx,内部地址是 10.10.58.1

服务器的主机名为“myhost”。我没有 24.89.xxx.xxx 地址的 DNS 条目,因为它尚未启用。将解析为该地址的域名目前正用于现有网站。

我希望 web-dev 团队能够通过 24.89.xxx.xxx 地址访问该网站。但是,每当他们查看该网站时,所有 URL 都会插入本地主机名。

因此,<a href="index.php?id=9">Link</a>生成一个 URLhttp://myhost/index.php?id=9 但是,我希望它生成一个 URLhttp://24.89.xxx.xxx/index.php?id=9

Apache 安装在 Debian Lenny 上。我使用的是“默认”站点。我尝试过将 NamedVirtualHost 设置为 IP、将 ServerName 设置为 IP、将 UseCanonicalName 关闭、将 VirualHost 设置为等等……我所做的一切都没有产生任何变化。是的,我每次都会重新加载配置。

我也尝试过切断防火墙,但结果是一样的。我还对 /etc/hosts 文件做了大量更改。

在 /etc/hosts 中:

127.0.0.1       localhost
10.10.58.1      myhost
24.89.xxx.xxx   www.inusedomain.org

答案1

仔细阅读后,我认为这可能是 php 问题。通常,您需要设置某种“基本网址' 在网站的配置中,这样 php 就知道如何创建所有链接(“覆盖 URL”)。寻找 config.php,或者网站根目录中的类似内容。

如果您的开发人员水平不高,那么它可能不存在于单个变量中,而是存在于各个地方。要找到它,或者可能在单个位置找到它,请使用grep -Ri --include='*.php*' 'localhost' *,将 localhost 更改为当前被覆盖的任何内容。

不是一个完整的答案:
我不完全确定,但我想我记得将虚拟主机绑定到特定 IP,或者更改 listen 指令需要完全重启,而不仅仅是正常重启或重新加载配置。

答案2

我可以保证问题不在于 apache。您应该查看生成 html 内容的程序...例如 php 等。

相关内容