gpt4 book ai didi

php - 虚拟主机 - 全部重定向到 WAMP 本地主机 'home' 页面

转载 作者:可可西里 更新时间:2023-11-01 13:38:59 25 4
gpt4 key购买 nike

我已经在我的 Windows 8 PC 上安装了最新版本的 WAMP - 我似乎无法让多个虚拟主机工作,我加载的每个本地 URL 都会显示 WAMP 主页。

谁能解释我做错了什么?

// My hosts file
127.0.0.1 localhost
127.0.0.1 client1.localhost
127.0.0.1 client2.localhost

我的 WAMP 目录中有两个文件夹,“client1”和“client2”,显然每个文件夹都与上面主机文件中的 client1 和 client2 相关。

// My virtual hosts file
<VirtualHost *:80>
ServerName localhost
DocumentRoot "C:\wamp\www"
</VirtualHost>

<VirtualHost *:80>
ServerName client1.localhost
DocumentRoot "C:\wamp\www\client1"
<Directory "C:\wamp\www\client1">
allow from all
order allow,deny
AllowOverride All
</Directory>
DirectoryIndex index.html index.php
</VirtualHost>

<VirtualHost *:80>
ServerName client2.localhost
DocumentRoot "C:\wamp\www\client2"
<Directory "C:\wamp\www\client2">
allow from all
order allow,deny
AllowOverride All
</Directory>
DirectoryIndex index.html index.php
</VirtualHost>

最佳答案

您的主机文件看起来不错,但您的虚拟主机定义不太好。

如果您更改了hosts 文件,您可以通过使用以管理员身份运行 启动的命令窗口或简单的重启来重新加载Windows 缓存:-

net stop "DNS Client"

然后当完成时做

net start "DNS Client"

需要引号,因为服务名称中有空格!!

DNS 客户端服务缓存访问的域名,并在启动时或如果您按上述方式重新启动服务时预加载 HOSTS 文件中存在的域名。

调试新的 vhost 定义时,请记住,如果您尝试访问的定义有问题,Apache 将始终默认使用 vhost 定义文件中定义的第一个 vhost。因此,如果那是您最终到达的地方,即 WAMP 主页,您可以假设您在定义该虚拟主机时犯了错误。

这也意味着,如果您使用诸如 Require local 之类的东西来定义第一个 vhost 定义,那么如果系统的安全性设置为 Require local 黑客应该收到 404 错误,这可能会阻止进一步的黑客尝试。

// My virtual hosts file
<VirtualHost *:80>
ServerName localhost
DocumentRoot "C:\wamp\www"
<Directory "C:\wamp\www">
AllowOverride All
# never want to allow access to your wamp home page area to anyone other than This PC
# plus us the Apache 2.4.x syntax and not the 2.2 syntax
Require local
</Directory>
</VirtualHost>

<VirtualHost *:80>
ServerName client1.localhost
DocumentRoot "C:\wamp\www\client1"
<Directory "C:\wamp\www\client1">
AllowOverride all
# use Apache 2.4 syntax to all access to your internal network only
Require ip 192.168.0
# Or if you really want to give access to the whole internet uncomment this and comment the previous line
#Require all granted
</Directory>
DirectoryIndex index.html index.php
</VirtualHost>

<VirtualHost *:80>
ServerName client2.localhost
DocumentRoot "C:\wamp\www\client2"
<Directory "C:\wamp\www\client2">
AllowOverride all
# use Apache 2.4 syntax to all access to your internal network only
Require ip 192.168.0
# Or if you really want to give access to the whole internet uncomment this and comment the previous line
#Require all granted
</Directory>
DirectoryIndex index.html index.php
</VirtualHost>

如果您实际上不希望世界被允许访问这些客户端站点,但您确实希望能够从内部网络上的其他 PC 访问该站点,那么更好的访问机制是使用 需要ip 192.168.0。请注意仅使用子网的前 3 个四分位数(您的子网可能不是 192.168.0,但许多路由器默认使用该子网。首先检查您的子网)

此外,如果您确实希望全世界都看到这些客户站点,那么您还必须端口转发您的路由器。

此外,如果您不打算向全世界提供对这些站点的访问权限,而只是听从了错误的建议,那么所有这些站点的更安全的定义是使用 Require local因此您只能从运行 WAMP 的 PC 访问它们。

WAMPServer 2.4,我假设你的意思是当你说你正在运行最新版本的 WAMPServer 实际上改变了你可以包含 vhost 定义的方式。好吧,实际上它包含了一种新方式,同时也保留了旧方式。

因此,要包含 vhost 定义,您可以执行以下两件事之一:-

1.将您的 vhost 定义放入文件 \wamp\bin\apache\apache2.4.4\conf\extra\httpd-vhosts.conf 然后在 httpd.conf 文件中取消注释这一行(它靠近底部的 conf 文件。

# Virtual hosts
#Include conf/extra/httpd-vhosts.conf

删除 Include 行前面的 #

# Virtual hosts
Include conf/extra/httpd-vhosts.conf

2。将您的 vhost 定义放入 \wamp\vhost 文件夹中的“任意名称”文件中。

httpd.conf 文件底部有一行内容是 IncludeOptional "d:/wamp/vhosts/*"这将包括该文件夹中的任何文件,如果它是虚拟主机定义,它将把它应用到配置中。这是 Apache 2.4 的新命令,我相信它只适用于 Apache 2.4.x 安装。

关于php - 虚拟主机 - 全部重定向到 WAMP 本地主机 'home' 页面,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21371349/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com