访问具有 virtualhost 的服务器 apache
access to a server apache that has virtualhost
我有一个安装了 lampp 的云服务器。我在这里配置了一个虚拟主机:
<VirtualHost xx.xxx.xx.xxx:80>
DocumentRoot "/opt/lampp/htdocs/folder/"
ServerName www.xxx.com
</VirtualHost>
一切都如我所料,如果我去 www.xxx.com 我会看到我的 'folder' 网站。
现在我需要在同一台服务器上的另一个站点上工作,但它还没有域,所以我想象(通过阅读 apache 的配置文件解释)我必须这样做:
<VirtualHost xx.xxx.xx.xxx:80>
DocumentRoot "/opt/lampp/htdocs/folder/"
ServerName www.xxx.com
</VirtualHost>
<VirtualHost xx.xxx.xx.xxx:80/test>
DocumentRoot "/opt/lampp/htdocs/test/"
</VirtualHost>
但它不起作用,如果我 http://xx.xxx.xx.xxx:80 i reach the 'folder' site while if i do http://xx.xxx.xx.xxx:80/test 而不是到达 'test' 站点我仍然到达 www.xxx.com,为什么?我怎样才能达到这个 objective?
最先定义的虚拟主机(最上面)充当默认主机。该请求用于响应与请求中的特定主机名不 匹配的任何传入请求。
您想试试这个设置:
# some fallback host for testing and development
<VirtualHost xx.xxx.xx.xxx:80>
DocumentRoot "/opt/lampp/htdocs/_default"
</VirtualHost>
# a virtual host with a specific host name
<VirtualHost xx.xxx.xx.xxx:80>
DocumentRoot "/opt/lampp/htdocs/example.com"
ServerName example.com
ServerAlias www.example.com
</VirtualHost>
(这里xx.xxx.xx.xxx
代表系统public和可路由的IPV4地址)
在您的文件系统中,您具有以下层次结构:
/opt/lampp/htdocs/
_default/
test1/
test2/
example.com/
通过这种方式,对 http://example.com
或 http://www.example.com
的请求映射到文件夹 /opt/lampp/htdocs/example.com
,对具有 任何其他 主机名的 URL 的请求映射到默认文件夹 /opt/lampp/htdocs/_default
,您现在可以在其中为不同的应用程序创建任意数量的子文件夹。
另一种方法是使用现有域名下方的其他主机名进行内部测试,例如 test1.example.com
或类似名称。这样您就不必使用带有路由风险的原始 IP 地址。
我有一个安装了 lampp 的云服务器。我在这里配置了一个虚拟主机:
<VirtualHost xx.xxx.xx.xxx:80>
DocumentRoot "/opt/lampp/htdocs/folder/"
ServerName www.xxx.com
</VirtualHost>
一切都如我所料,如果我去 www.xxx.com 我会看到我的 'folder' 网站。
现在我需要在同一台服务器上的另一个站点上工作,但它还没有域,所以我想象(通过阅读 apache 的配置文件解释)我必须这样做:
<VirtualHost xx.xxx.xx.xxx:80>
DocumentRoot "/opt/lampp/htdocs/folder/"
ServerName www.xxx.com
</VirtualHost>
<VirtualHost xx.xxx.xx.xxx:80/test>
DocumentRoot "/opt/lampp/htdocs/test/"
</VirtualHost>
但它不起作用,如果我 http://xx.xxx.xx.xxx:80 i reach the 'folder' site while if i do http://xx.xxx.xx.xxx:80/test 而不是到达 'test' 站点我仍然到达 www.xxx.com,为什么?我怎样才能达到这个 objective?
最先定义的虚拟主机(最上面)充当默认主机。该请求用于响应与请求中的特定主机名不 匹配的任何传入请求。
您想试试这个设置:
# some fallback host for testing and development
<VirtualHost xx.xxx.xx.xxx:80>
DocumentRoot "/opt/lampp/htdocs/_default"
</VirtualHost>
# a virtual host with a specific host name
<VirtualHost xx.xxx.xx.xxx:80>
DocumentRoot "/opt/lampp/htdocs/example.com"
ServerName example.com
ServerAlias www.example.com
</VirtualHost>
(这里xx.xxx.xx.xxx
代表系统public和可路由的IPV4地址)
在您的文件系统中,您具有以下层次结构:
/opt/lampp/htdocs/
_default/
test1/
test2/
example.com/
通过这种方式,对 http://example.com
或 http://www.example.com
的请求映射到文件夹 /opt/lampp/htdocs/example.com
,对具有 任何其他 主机名的 URL 的请求映射到默认文件夹 /opt/lampp/htdocs/_default
,您现在可以在其中为不同的应用程序创建任意数量的子文件夹。
另一种方法是使用现有域名下方的其他主机名进行内部测试,例如 test1.example.com
或类似名称。这样您就不必使用带有路由风险的原始 IP 地址。