curl无法解析子域,但浏览器可以

时间:2018-07-30 19:50:28

标签: curl

运行以下curl命令时,我收到一条熟悉的错误消息curl: (6) Couldn't resolve host 'instance.localhost'

curl -X POST -d name=/Applications/XAMPP/xamppfiles/htdocs/instance/file.mov -d name_2=/Applications/XAMPP/xamppfiles/htdocs/instance/file2.mov http://instance.localhost/backend/scripts/process.php

该消息的含义很清楚,但是当我尝试在浏览器中访问相同的URL时,文件将正常显示。

请注意,我已将虚拟主机instance配置为运行本地计算机。 为了测试是否只有子域无法解决,我将相同的文件放在localhost / backend / scripts / process.php中,并卷曲完成的请求而没有错误。

为什么终端无法识别子域中的文件但浏览器无法识别?

我正在运行osx Sierra。

httpd.conf:

<VirtualHost *:80>
    ServerName instance.localhost
    DocumentRoot "/Applications/XAMPP/xamppfiles/htdocs/instance"

    <Directory "/Applications/XAMPP/xamppfiles/htdocs/instance">
         Require all granted
         Options Indexes FollowSymLinks
         AllowOverride None
         Require all granted
    </Directory>
    #DirectoryIndex index.html

</VirtualHost>

1 个答案:

答案 0 :(得分:1)

我可以考虑许多原因。前两个:

  1. 浏览器已配置代理,但未设置供curl使用的http_proxy / https_proxy环境变量。
  2. 如果在VM网络中执行curl,或者DNS可能未正确配置。

尝试使用“ nslookup instance.localhost”来解析名称。如果您正在运行VM,请从本地终端和VM内部执行命令以进行故障排除。

另外,如果您需要那些“ instance.localhost”来始终解析,也许您还可以使用以下条目将其添加到/ etc / hosts文件中:

127.0.0.1 instance.localhost