2015-11-06 120 views
1

我为localhost上的网站设置了一个虚拟主机,所以它将被定向到blog.local.dev而不是local.dev/blog并且它工作正常,但是当我尝试做与wamp/www localhost目录相同时,似乎是一个问题。它显示了我的所有项目列表的wamp网站,但是当我点击我的项目时,它说我没有权限访问它(403 Forbidden)。wap/www localhost的apache虚拟主机不能正常工作

这里是我的主机

# Copyright (c) 1993-2009 Microsoft Corp. 
# 
# This is a sample HOSTS file used by Microsoft TCP/IP for Windows. 
# 
# This file contains the mappings of IP addresses to host names. Each 
# entry should be kept on an individual line. The IP address should 
# be placed in the first column followed by the corresponding host name. 
# The IP address and the host name should be separated by at least one 
# space. 
# 
# Additionally, comments (such as these) may be inserted on individual 
# lines or following the machine name denoted by a '#' symbol. 
# 
# For example: 
# 
#  102.54.94.97  rhino.acme.com   # source server 
#  38.25.63.10  x.acme.com    # x client host 

# localhost name resolution is handled within DNS itself. 
# 127.0.0.1  localhost 
# ::1    localhost 

127.0.0.1  localhost 
127.0.0.1  local.dev 
127.0.0.1  blog.local.dev 

她是我的httpd-vhosts.conf

# 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 [email protected] 
    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 [email protected] 
    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> 

<VirtualHost *:80> 
    ServerAdmin [email protected] 
    DocumentRoot "C:/wamp/www" 
    ServerName local.dev 
    ErrorLog "C:/wamp/www/error.log" 
    CustomLog "C:/wamp/www/access.log" common 
</VirtualHost> 

<VirtualHost *:80> 
    ServerAdmin [email protected] 
    DocumentRoot "C:/wamp/www/blog/public" 
    ServerName blog.local.dev 
    ErrorLog "C:/wamp/www/blog/logs/error.log" 
    CustomLog "C:/wamp/www/blog/logs/access.log" common 
</VirtualHost> 

希望任何人能帮助我。

+0

在您的apache配置文件中查找“Order Deny,Allow”或类似内容。如果你找到它,那么你应该添加'Allow from localhost'和'Allow from 127.0.0.1',如果它们不存在。 –

+0

不确定它在这种情况下会发挥作用,但Apache将始终使用与请求相匹配的第一个VirtualHost,这有时不是您所期望的。这可能有助于包含可以工作但不工作的请求的完整URL。 –

回答

1

听起来像你试图做错了反正。这听起来像你试图为项目列表设置一个虚拟主机,而不是每个项目的一个虚拟主机。

设置一个虚拟主机每个项目seperately并检查相关项目的.htaccess,藏汉作为apache配置文件。

0

看着你的conifg,好像local.dev只是列出了文件夹C:/wamp/www的内容。

当您单击blog时,您尝试访问:C:/wamp/www/blog,它没有任何index.php,如果您关闭了索引,则会给您一个403。

这是文件夹C:/wamp/www/blog/publicindex.php

当你点击一个项目(如blog),你真的不访问虚拟主机blog.local.devlocal.dev/blog

我是否理解正确吗?

2

对不起,没有英语

在Apache的httpd.conf文件中取消注释这一行

IncludeOptional "c:/wamp/vhosts/*" 

在C:\ WAMP \虚拟主机创建一个名为anyname.conf并添加此

#for localhost 
<VirtualHost *:80> 
    DocumentRoot "c:/wamp/www/" 
    ServerName localhost 
</VirtualHost> 

#for yourpage.localhost 
<VirtualHost *:80> 
    DocumentRoot "c:/wamp/www/yourfolder" 
    ServerName yourpage.localhost 
</VirtualHost> 

以这种方式你不需要编辑Windows主机文件,因为你的自定义本地站点将是localhost的子域,而wamp将管理自己