我的wamp localhost中有两个代码点火器项目,我正在尝试设置多个vhosts。
我的目录结构如下:
- www
- project
- projectold
我设置了两个主机: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>
我还在httpd.conf文件中取消了这一行的注释:
LoadModule vhost_alias_module modules/mod_vhost_alias.so
编辑:
这是当前在我的主机文件中的内容:
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
(不确定为什么项目有2个条目。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中创建多个虚拟主机/网站Virendra Chandak
若要创建多个网站,请在本地计算机上设置每个网站。使用Wampserver(或者仅仅是Apache),我们可以轻松地配置多个网站。以下是使用Apache配置创建多个网站的步骤。这使用Apache的"命名虚拟主机"配置。我已经在运行Windows XP和Windows 7的Wampserver 2.1上测试了这些步骤。
步骤1:设置您的主机名或设置Windows以识别您的本地网站
安装WAMP服务器后,您可以转到浏览器并键入http://localhost它打开了一页。默认情况下,Windows将站点localhost识别为引用自身。我们需要设置窗口来识别我们的其他本地网站。为此,我们需要编辑hosts文件。此文件位于以下目录下。(另一种访问该目录的方法是,打开run命令或按Windows键+R,然后键入"drivers"并按"OK",然后转到"etc"。)C:/Windows/System32/drivers/etc
转到该目录后,使用您喜欢的文本编辑器(如Notepad、Editplus、Notepad++)打开该目录中名为hosts的文件。
注意:您可能无法在Windows Vista或Windows 7中编辑或保存此文件。您需要管理员权限才能编辑此文件。
现在,您将在文件末尾看到一行内容如下:
127.0.0.1 localhost
当我们尝试进入时,此代码告诉您的计算机连接到您自己的计算机
`http://localhost`
现在我们应该将我们的站点添加到此文件中。假设我们的网站名称是site1。因此,我们将在hosts文件中为其添加一个条目。更新后的文件将类似于以下内容:
127.0.0.1 localhost
127.0.0.1 site1
保存此文件并尝试转到http://site1这会把你带到与http://localhost现在我们的电脑知道了http://site1是.
注意:请确保您没有为google.com或bing.com等外部网站添加主机条目。如果您添加这些条目,则计算机将无法再访问实际网站。步骤2:为网站创建一个文件夹
Wampserver只有一个文件夹或站点根目录来承载网站。这个文件夹通常是C:\/wamp/w。我们应该为每个网站创建一个不同的文件夹。我们可以在任何目录或驱动器中创建文件夹。(如果我们在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>
我还没有使用站点1和站点2的所有选项,但拥有它们是一个很好的实践。还要注意,site2的代码中有一些额外的Directory代码。这对于允许服务器访问该目录是必要的。如果我们不添加此项,服务器将无法访问此目录中的文件,因此网站将无法工作。对于site1,我们不需要这样做,因为它在C:\wamp\www目录中,其目录设置是由wampserver中的defolt设置的。
现在重新启动Apache,您的所有站点都应该可以工作了。请确保将site2添加到主机文件中,并在C:\/site2中为其创建目录。
注:我不对上述步骤在任何情况下的正常运作负责。如果你从我的博客下载了任何文件和程序,那么一定要保护好自己。我不对您的电脑、网站、博客、应用程序或任何其他东西的任何损坏负责。我不隶属于或不支持任何上述网站。
原创文章:https://www.virendrachandak.com/techtalk/creating-multiple-virtual-websites-in-wampserver/
过去帮助过我。