Apache Wampserver在切换到使用vHost后显示404错误
因此,我使用Wampserver进行开发,并设法将服务器设置为与Dreamweaver、PHP等一起使用的开发目的。但在访问localhost时,我遇到了404错误 我几乎没有更改设置,只是将其设置为使用vhosts文件,然后我在system32的hosts文件中创建了一些新主机,所有这些都可以正常工作 然而,localhost/phpmyadmin确实可以工作,所以我真的很困惑为什么它不会加载任何东西。我还尝试加载一个站点文件夹localhost/Rufus,它也返回了404。我有所有的目录,我需要指向www文件夹,我的所有文件都保存在那里 在别人说之前,不是Skype或IIS,因为它们都关闭了,Wampserver正在我检查的端口80上运行 我的vhosts文件:Apache Wampserver在切换到使用vHost后显示404错误,apache,wampserver,Apache,Wampserver,因此,我使用Wampserver进行开发,并设法将服务器设置为与Dreamweaver、PHP等一起使用的开发目的。但在访问localhost时,我遇到了404错误 我几乎没有更改设置,只是将其设置为使用vhosts文件,然后我在system32的hosts文件中创建了一些新主机,所有这些都可以正常工作 然而,localhost/phpmyadmin确实可以工作,所以我真的很困惑为什么它不会加载任何东西。我还尝试加载一个站点文件夹localhost/Rufus,它也返回了404。我有所有的目录,
# Virtual Hosts
#
# Required modules: mod_log_config
# If you want to maintain multiple domains/hostnames on your
# machine you can setup VirtualHost containers for them. Most configurations
# use only name-based virtual hosts so the server doesn't need to worry about
# IP addresses. This is indicated by the asterisks in the directives below.
#
# Please see the documentation at
# <URL:http://httpd.apache.org/docs/2.4/vhosts/>
# for further details before you try to setup virtual hosts.
#
# You may use the command line option '-S' to verify your virtual host
# configuration.
#
# VirtualHost example:
# Almost any Apache directive may go into a VirtualHost container.
# The first VirtualHost section is used for all requests that do not
# match a ServerName or ServerAlias in any <VirtualHost> block.
#
<VirtualHost *:80>
ServerAdmin webmaster@dummy-host.example.com
DocumentRoot "c:/Apache24/docs/dummy-host.example.com"
ServerName dummy-host.example.com
ServerAlias www.dummy-host.example.com
ErrorLog "logs/dummy-host.example.com-error.log"
CustomLog "logs/dummy-host.example.com-access.log" common
</VirtualHost>
<VirtualHost *:80>
ServerAdmin webmaster@dummy-host2.example.com
DocumentRoot "c:/Apache24/docs/dummy-host2.example.com"
ServerName dummy-host2.example.com
ErrorLog "logs/dummy-host2.example.com-error.log"
CustomLog "logs/dummy-host2.example.com-access.log" common
</VirtualHost>
<Directory C:\Users\Tom\sites\wamp\www>
Order Deny,Allow
Allow from all
</Directory>
<VirtualHost *:80>
DocumentRoot "C:\Users\Tom\sites\wamp\www\Rufus"
ServerName rufus.stone
</VirtualHost>
如果不使用示例虚拟主机,请删除它们。“localhost”还需要一个虚拟主机,它必须是第一个虚拟主机。之后,您可以包含其他自定义vhost
#
# Use name-based virtual hosting.
#
NameVirtualHost *:80
<VirtualHost *:80>
DocumentRoot "C:\Users\Tom\sites\wamp\www"
ServerName localhost
</VirtualHost>
<VirtualHost *:80>
DocumentRoot "C:\Users\Tom\sites\wamp\www\Rufus"
ServerName rufus.stone
</VirtualHost>
如果出现“权限被拒绝”错误,请尝试将我取出的指令放入httpd.conf:
<Directory "C:\Users\Tom\sites\wamp\www">
Order Deny,Allow
Allow from all
</Directory>
它将在一个类似的指令下运行,该指令包括根上所有人的拒绝
确保在对这些文件进行更改时始终重新启动Apache 错误404表示您尚未授予对这些虚拟主机的访问权限,因此Apache将您踢出 您需要在虚拟主机中包含一些信息,以告知Apache允许访问每个VHOST的位置 您还需要将localhost设置为虚拟主机,因为第一个VHOST是默认VHOST,所以它实际上应该是您定义的第一个VHOST,并且应该始终限制为仅允许从本地计算机进行访问 所以,看看这是否更有效
# Virtual Hosts
#
<VirtualHost *:80>
DocumentRoot "C:\Users\Tom\sites\wamp\www"
ServerName localhost
<Directory "C:\Users\Tom\sites\wamp\www">
AllowOverride All
Require local
</Directory>
</VirtualHost>
<VirtualHost *:80>
DocumentRoot "C:\Users\Tom\sites\wamp\www\Rufus"
ServerName rufus.stone
<Directory "C:\Users\Tom\sites\wamp\www\Rufus>
AllowOverride All
Require local
</Directory>
</VirtualHost>
假设您位于子网192.168.1上,则会发生此情况。?将允许任何连接到路由器的PC通过有线或wifi访问服务器
你应该避免这些,除非你真的想让世界访问你的网站
Require all granted
或者Apache2.2语法,它仍然在Apache2.4上工作
Order Deny,Allow
Allow from all
在编辑中显示您的虚拟主机配置文件。甚至不确定这是否是问题所在。当我在Dreamweaver中按f12键时,它似乎起作用,但打开localhost或localhost/我创建的任何文件夹都不起作用。不过,在使用vhost之前,它确实起了作用。
Order Deny,Allow
Allow from all