无法让 localhost 同时显示 WampServer 索引和动态 url

Posted

技术标签:

【中文标题】无法让 localhost 同时显示 WampServer 索引和动态 url【英文标题】:Cant get localhost to show WampServer index and dynamic urls at same time 【发布时间】:2013-03-17 12:16:35 【问题描述】:

我已经安装了 Wamp,因此我可以运行我构建的一些简单的动态网站。我希望能够拥有三个或四个并学习如何在本地级别做事,然后将改进的文件上传到实时站点,而不必由于位置/路径等而重写部分。

要显示 WampServer 索引页面,我转到 http-vhosts.conf 并添加

<VirtualHost 127.0.0.1> ServerName localhost DocumentRoot "E:/wamp/www" </VirtualHost>

我了解我将标记为 mysite.local 的站点目录放入 E:wamp/www,因此路径变为 E:wamp/www/mysite.local。然后我去 http-vhosts.conf 并添加

<VirtualHost *:80> ServerName mysite.local DocumentRoot "E:/wamp/www/mysite.local" </VirtualHost>

我的主机文件有

127.0.0.1       localhost  
127.0.0.1       mysite.local

我的 httfp.conf 有

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

所以我完成这一切的问题是,当我在 url 中键入 localhost 时,我的 WampServer 索引显示正常,并且 mysite.local 出现在“您的项目”下的该索引页面上,这一切都很好,但是当我点击来自 WampServer 的 mysite.local 链接,网址更改为 localhost/mysite.local 而不是 mysite.local,然后当我单击来自 localhost/mysite.local 的页面链接时,我得到 localhost/mysite.local/linkedpage 作为 url 和 404错误。

mysite.local 作为 url 也会打开 WampServer 索引页面

如果我从 http-vhosts.conf 中注释掉 ServerName localhost 并重新启动 apache。当我尝试将 mysite.local 作为 url 时,我得到了我想要的东西 - mysite 有效,所有动态链接都有效。但是 WampServer 索引是一个 404 错误。

我想要做的就是登录 WampServer 并从“您的项目”列表中访问各个站点。

请帮个忙

【问题讨论】:

为什么使用 wampserver 的“你的项目”列表?只需在浏览器中为各种本地 URL 添加书签即可。另外,可能更适合Serverfault。 谢谢大卫 - 很惊讶我没有任何答案?我只是认为设置它会很好,因为它似乎是有意的。我不知道“更适合 serverfault 是什么意思”。 serverfault.com 【参考方案1】:

请参阅下面的合理虚拟主机定义

#
# Use name-based virtual hosting.
#
NameVirtualHost *:80


## must be first so the the wamp menu page loads
<VirtualHost *:80>
    ServerAdmin webmaster@homemail.net
    DocumentRoot "D:/wamp/www"
    ServerName localhost
    ServerAlias localhost
    <Directory  "D:/wamp/www">
        Order Deny,Allow
        Deny from all
        Allow from 127.0.0.1
    </Directory>
</VirtualHost>

<VirtualHost *:80>
    ServerAdmin webmaster@homemail.net
    DocumentRoot "D:/websrc/www/project1"
    ServerName project1.dev
    ServerAlias project1.dev www.project1.dev
    Options Indexes FollowSymLinks
    <Directory "D:/websrc/www/project1">
        AllowOverride All
        Order Deny,Allow
        Allow from 127.0.0.1
        Allow from 192.168.2
    </Directory>
</VirtualHost>

<VirtualHost *:80>
    ServerAdmin webmaster@homemail.net
    DocumentRoot "D:/websrc/www/project2"
    ServerName project2.dev
    ServerAlias project2.dev www.project2.dev
    Options Indexes FollowSymLinks
    <Directory "D:/websrc/www/project2">
        AllowOverride All
        Order Deny,Allow
        Allow from 127.0.0.1
        Allow from 192.168.2
    </Directory>
</VirtualHost>

您必须更改目录名称以适应您的情况。

还记得将您的虚拟主机名称添加到您的 HOSTS 文件中

c:\windows\system32\drivers\etc\hosts

> 127.0.0.1 project1.dev
> 127.0.0.1 project2.dev

在我看来,虚拟主机最好设置在 /wamp/www 文件夹结构之外。在我使用的示例中参见上面 d:\websrc\www\project1

您使用直接键入浏览器地址字段的 project1.dev 运行虚拟主机。

如果您想在 wamp 主页上查看您的虚拟主机,请执行以下操作:

创建一个文件夹 ?:/wamp/vhosts 在该文件夹中创建文件,命名如下: project1.dev.conf project2.dev.conf ...等

它们不需要任何内容​​,只需要正确的名称来匹配您的虚拟主机名称

然后这些将显示在您的虚拟主机标题下的 wamp 主页上,您可以单击它们以启动它们。

【讨论】:

【参考方案2】:

hosts 文件和httpd.conf 看起来不错。

一些事情要尝试...

&lt;VirtualHost *:80&gt; 用于两个虚拟主机。

确保DocumentRoot 字符串有一个终端/

对于根虚拟主机,ServerName localhost:80

要通过虚拟主机浏览,请始终从 url 中省略 localhost/。 “您的项目”链接包括 localhost/,并以路径从根访问项目,而不是作为独立站点,每个站点都有自己的根(这是虚拟主机为您提供的)。

(WAMP 2) 当其他所有问题都得到修复后...要使根“index.php”页面的“您的虚拟主机”部分活跃起来,请关注these instructions。我只是这样做了,并不后悔。现在我可以单击链接来访问我作为虚拟主机服务的网站 - 耶!正是我一直想要的“你的项目”链接,但没有得到。

顺便说一句,&lt;VirtualHost&gt;...&lt;/VirtualHost&gt; 指令将每个主机名绑定到服务器文件系统中的特定路径,因此“E:/wamp/www/”中的子目录不需要“.local”后缀.从目录本身中删除“.local”后,对DocumentRoot 条目进行相应的更改,例如DocumentRoot "E:/wamp/www/mysite/"。但请务必在“ServerName”条目中保留“.local”,例如。 ServerName mysite.local,以匹配“主机”文件中的条目。

【讨论】:

真的很抱歉长时间延迟回复。我在没有它正常工作的情况下进行了管理,并且刚刚尝试了您的建议,并且效果很好:-)我现在可以查看带有指向我网站的链接的 wampserver 主页。你是明星。遗憾的是,我需要 15 个声望,所以我不能给你投票? 是的,让这些东西工作起来非常令人满意。如果您强烈希望接受/支持我的回答,那么您可以将页面添加为书签,并在您有更多代表时返回。

以上是关于无法让 localhost 同时显示 WampServer 索引和动态 url的主要内容,如果未能解决你的问题,请参考以下文章

无法让 jabber 客户端连接到在 localhost 上运行的 ejabberd

无法让 Laravel 在 Ubuntu 上使用 apache

安装IIS后用localhost无法访问,请各位高手帮忙!

LocalHost 出错,IE 无法显示网页

http://localhost/ 无法显示网页

我无法在我的 API 应用程序中显示。我无法在localhost上运行是啥原因?