服务器拒绝除其自身之外的所有主机的访问

服务器拒绝除其自身之外的所有主机的访问

我在托管服务器上有媒体内容,我想让另一个域访问这些内容。

在配置文件中,即使我“允许所有人”,除其自身之外的所有主机都会获取托管公司的通用登陆页面,这让我感到困惑。

我使用 curl 进行测试,命令如下:

curl -H "Host: anything.com" http://mydomain.com

它仅显示托管公司的页面。

如果我做:

curl -H "Host: mydomain.com" http://mydomain.com

它将显示我的内容。

如何允许其他主机访问我的内容?我以为 .htaccess 中的“允许”可以正常工作,但事实并非如此。

答案1

阅读 http 主机标头。它正在做它应该做的事情。您需要让您的托管公司为您的新域名添加另一个主机标头。

答案2

一些假设

在 Linux 机器上运行 Apache

检查 httpd.conf,因为有一个默认配置将“允许”限制为本地主机,而且默认配置不启用覆盖(.htaccess 文件)

答案3

域名是新的吗?在我看来,DNS记录还没有完全传播,example.com仍然指向托管网站的停放域名。

尝试dig example.com查看出现了什么信息以及这些信息是否准确。此外,尝试直接转到您的网络主机的 IP 地址。

正如马克指出的那样,Host标题并不像你想象的那样,你只是在告诉你的服务器你想要这个页面,而anything.com不是你正在浏览的页面anything.com

如果您在浏览网站时仍然遇到问题,我强烈怀疑这是 DNS“传播”问题。

答案4

在 Linux 机器上?检查你的/etc/hosts。服务器(可能)已通过主机名绑定了监听地址,该地址可能(可能)指向 127.0.xx 地址 - 尝试通过主机名添加本地条目以获取机器的真实 IP,然后重新启动该过程。

Mark 和 cpbills 是对的,Host标题可能会给你带来麻烦,但无论如何,检查一下都是件好事,因为它是您描述的症状的原因。

相关内容