我在托管服务器上有媒体内容,我想让另一个域访问这些内容。
在配置文件中,即使我“允许所有人”,除其自身之外的所有主机都会获取托管公司的通用登陆页面,这让我感到困惑。
我使用 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
标题可能会给你带来麻烦,但无论如何,检查一下都是件好事,因为它能是您描述的症状的原因。