我正在尝试从我的托管服务器执行一个简单的curl命令,它返回404,但是当我从我自己的机器或浏览器运行相同的命令时,它工作正常。
奇怪的部分是我在同一台服务器上运行两个网站,第二个网站通过在服务器或我的机器上使用curl工作正常。但是这个问题在哪里它适用于索引页面,但任何其他页面都将返回404。
我已经检查了htacess并且还记录了,没有任何帮助。
我查看了许多其他帖子和谷歌但找不到合适的答案。感谢您的帮助。
我正在使用Cent Os 4。
答案 0 :(得分:1)
您需要查明机器是否在本地了解其dns条目。
因此,您在家中使用的DNS服务器知道在网址中编码的服务器是该特定服务器。主机的外向路由器显然知道这一点。但这并不意味着机器本身也知道这一点。
所以试试吧
nslookup www.yourdomain.com
从托管服务器的shell中查看它是否知道其身份。
如果没有,您可以在hosts文件中输入您的域作为127.0.0.1的附加条目。
域名解析始终首先使用hosts文件,然后是配置的dns服务器 - 然后失败。
答案 1 :(得分:1)
如果是代理问题,请在httpd.conf中查找类似的内容:
反向代理
ProxyPass /foo http://foo.example.com/bar
ProxyPassReverse /foo http://foo.example.com/bar
转发代理
ProxyRequests On
ProxyVia On
<Proxy *>
Order deny,allow
Deny from all
Allow from internal.example.com
</Proxy>
如你所见,那里可能有一个allow from指令,这就是你可能遇到的。
也可能是,如果您在主机上,则无法看到/ blog / sub目录,因为您的主机为您执行代理。然后你会在机器上查询它不知道的子目录。
可悲的是,没有人能说出来,除非他能亲自看看机器。但是现在你已经掌握了所有这些问题,我很肯定你会更接近解决方案。