Php 多台主机出现wamp vHost问题

Php 多台主机出现wamp vHost问题,php,codeigniter,wampserver,php-7,vhosts,Php,Codeigniter,Wampserver,Php 7,Vhosts,我在我的wamp本地主机中有2个codeigniter项目,我正在尝试设置多个vhost 我的目录结构如下: - www - project - projectold 我设置了两个vhost:project.lh和projectold.lh 以下是我的httpd-vhosts.conf条目: <VirtualHost *:80> ServerName localhost ServerAlias localhost DocumentRoot "${INST

我在我的wamp本地主机中有2个codeigniter项目,我正在尝试设置多个vhost

我的目录结构如下:

- www
    - project
    - projectold
我设置了两个vhost:project.lh和projectold.lh

以下是我的httpd-vhosts.conf条目:

<VirtualHost *:80>
  ServerName localhost
  ServerAlias localhost
  DocumentRoot "${INSTALL_DIR}/www"
  <Directory "${INSTALL_DIR}/www/">
    Options +Indexes +Includes +FollowSymLinks +MultiViews
    AllowOverride All
    Require local
  </Directory>
</VirtualHost>

<VirtualHost *:80>
    ServerName project.lh
    DocumentRoot "c:/wamp64/www/project"
    SetEnv CI_ENV development
    <Directory  "c:/wamp64/www/project/">
        Options +Indexes +Includes +FollowSymLinks +MultiViews
        AllowOverride All
        Require local
    </Directory>
</VirtualHost>

<VirtualHost *:80>
    ServerName projectold.lh
    DocumentRoot "c:/wamp64/www/projectold"
    SetEnv CI_ENV development
    <Directory  "c:/wamp64/www/projectold/">
        Options +Indexes +Includes +FollowSymLinks +MultiViews
        AllowOverride All
        Require local
    </Directory>
</VirtualHost>
编辑:

这是我的主机文件中当前的内容:

127.0.0.1 localhost
::1 localhost

127.0.0.1   project.lh
::1 project.lh

127.0.0.1   project.lh
::1 project.lh

127.0.0.1   projectold.lh
::1 projectold.lh
不确定为什么project.lh有两个条目

编辑2: 这是project.lh目录中的.htaccess文件。projectold.lh没有.htaccess文件

RewriteEngine on
RewriteBase /
## Hide the application and system directories by redirecting the request to index.php
RewriteRule ^(application|system|\.svn) index.php?/$1 [L]
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule ^(.*)$ index.php?/$1 [QSA,L]
##RewriteRule ^.*$ https://%{HTTP_HOST}%{REQUEST_URI} [L,R=301]
我遇到的问题是,当我导航到projectold.lh时,它以某种方式拉入了project.lh的标记。我不明白为什么会发生这种事,也不知道是怎么发生的。我在想我一定错过了什么

我试着在vhosts文件中注释project.lh条目,但没有解决问题。希望有人以前见过


我正在使用Wamp3.1.3。

在Wampserver中创建多个虚拟主机/网站 维伦德拉·钱达克

要创建多个网站,最好在本地计算机上设置每个网站。使用Wampserver或Apache,我们可以轻松配置多个网站。以下是使用Apache配置创建多个网站的步骤。这使用Apache的“命名虚拟主机”配置。我已经在运行Windows XP和Windows 7的Wampserver 2.1上测试了这些步骤

步骤1:设置主机名或安装窗口以识别本地网站

安装WAMP服务器后,您可以转到浏览器并键入,它将打开一个页面。默认情况下,Windows会将站点localhost识别为引用自身。我们需要设置windows以识别其他本地网站。为此,我们需要编辑hosts文件。此文件位于以下目录下。访问此目录的另一种方法是,打开run命令或按Windows键+R,然后键入“drivers”并按“OK”,然后转到“etc”。 C:/Windows/System32/drivers/etc

进入此目录后,使用您最喜欢的文本编辑器(如记事本、Editplus、记事本++)打开此目录中名为hosts的文件

注意:您可能无法在Windows Vista或Windows 7中编辑或保存此文件。您需要管理员权限才能编辑此文件

现在,您将在文件末尾看到一行,如下所示:

127.0.0.1   localhost
当我们尝试转到时,此代码告诉您的计算机连接到您自己的计算机

`http://localhost`
现在我们应该将我们的站点添加到此文件中。假设我们的站点名为site1。因此,我们将在hosts文件中为它添加一个条目。更新后的文件将类似于以下内容:

127.0.0.1   localhost
127.0.0.1   site1
保存此文件并尝试转到 这会将您带到与相同的页面 现在我们的计算机知道什么是

注意:确保不要为外部网站(如google.com或bing.com)添加主机条目。如果添加这些条目,则计算机将无法再访问实际的网站。 步骤2:为网站创建文件夹

Wampserver只有一个文件夹或站点根目录来承载网站。此文件夹通常为C:/wamp/www。我们应该为每个网站创建不同的文件夹。我们可以在任何目录或驱动器中创建文件夹。如果我们在C:/wamp/www之外创建文件夹,我们将需要后面描述的Apache中的一些附加设置

在这个文件夹中添加一些测试文件,如C:/wamp/www/site1目录中的“index.html”。 步骤3:设置Apache以服务多个站点

我们将为Apache设置更改文件httpd.conf和httpd-vhosts.conf。 单击WAMP服务器图标并选择“Apache->httpd.conf”,打开文件httpd.conf。该文件通常位于C:/wamp/bin/apache/Apache2.2.17/conf

不要向这个文件中添加代码,这不是一个干净简单的方法。我们只想取消注释该文件中包含vhosts文件的一行

包括conf/extra/httpd-vhosts.conf 从线路前方移除标志,更改后的线路应如下所示: 包括conf/extra/httpd-vhosts.conf

现在,我们将打开文件“httpd vhosts.conf”,它通常位于额外目录C:/wamp/bin/apache/Apache2.2.17/conf/extra中

在此文件中,我们将使用以下代码添加虚拟主机:

<VirtualHost *:80>
    ServerAdmin admin@localhost
    DocumentRoot "C:/wamp/www"
    ServerName localhost
    ServerAlias www.localhost.com
    ErrorLog "logs/localhost-error.log"
    CustomLog "logs/localhost-access.log" common
</VirtualHost>
在上面的代码中,ServerName和DocumentRoot是必需的,其他选项是可选的

因此,如果我们想在本地机器上有3个站点,如下所示

localhost -> C:/wamp/www
site1 -> C:/wamp/www/site1
site2 -> C:/site2

<VirtualHost *:80>
    ServerAdmin admin@localhost
    DocumentRoot "C:/wamp/www"
    ServerName localhost
    ServerAlias www.localhost.com
    ErrorLog "logs/localhost-error.log"
    CustomLog "logs/localhost-access.log" common
</VirtualHost>

<VirtualHost *:80>
    DocumentRoot "C:/wamp/www/site1"
    ServerName site1
</VirtualHost>

<VirtualHost *:80>
    DocumentRoot "C:/site2"
    ServerName site2
    <Directory "C:/site2">
        Options Indexes FollowSymLinks MultiViews
        AllowOverride None
        Order allow,deny
        Allow from all
    </Directory>
</VirtualHost>
我还没有使用site1和site2的所有选项,但拥有它们是一个很好的实践。还要注意,site2的代码有一些额外的目录代码。这是授予服务器访问该目录的权限所必需的。如果不添加此项,服务器将无法访问此目录中的文件,因此站点将无法工作。对于site1,我们不需要它作为其内部C:\wamp\www目录,其目录设置由wampserver中的defult设置

现在重新启动Apache,您的所有站点都应该正常工作。确保您添加了site2t o您的主机文件,并在C:/site2为其创建目录

注:在任何情况下,我不对上述步骤的正常运行负责。如果你从我的博客下载任何文件、程序,请确保你保护自己。我对您的计算机、网站、博客、应用程序或其他任何东西的任何损坏概不负责。我不附属于或不支持上述任何网站

原文:


过去帮过我。

你没有在主机文件中提到你做了什么。你在主机文件中注册了域吗?我添加了我的主机文件条目。我想我没有输入两次。当我使用UI添加vhost时,我假设wamp正在进行编辑。我只是复制了现在里面的东西。我将删除额外的条目。每个实例中是否都有.htaccess文件?我添加了.htaccess文件。复制别人的作品称为瘟疫。一个简单的评论,加上这些略显可疑/简单化的说明的链接,会做得很好。我引用了它——过去有人告诉我,仅仅包含一个链接是不好的做法,因为内容可能会被删除/更改。我一次也没有提到这是我的作品——如果有什么的话,我包括了原作者的名字!在击落想要帮助的人之前,请阅读回复和参考资料!!在一篇评论中,它是finePlus,您复制的这个教程有点过时,因为它使用的是Apache2.2语法,OP肯定使用的是Apache2.4I。我还想补充一点,这个答案的大部分是基本的东西,我显然已经根据我的原始问题配置好了。此外,这个答案中没有任何内容专门针对我的问题。
localhost -> C:/wamp/www
site1 -> C:/wamp/www/site1
site2 -> C:/site2

<VirtualHost *:80>
    ServerAdmin admin@localhost
    DocumentRoot "C:/wamp/www"
    ServerName localhost
    ServerAlias www.localhost.com
    ErrorLog "logs/localhost-error.log"
    CustomLog "logs/localhost-access.log" common
</VirtualHost>

<VirtualHost *:80>
    DocumentRoot "C:/wamp/www/site1"
    ServerName site1
</VirtualHost>

<VirtualHost *:80>
    DocumentRoot "C:/site2"
    ServerName site2
    <Directory "C:/site2">
        Options Indexes FollowSymLinks MultiViews
        AllowOverride None
        Order allow,deny
        Allow from all
    </Directory>
</VirtualHost>