让 Apache VHost 加载 index.html 而不是 Web 目录

Get Apache VHost to load index.html instead of web directory

我找不到这个问题的答案所以我自己问这个问题。

为了让我的 VHost 正常工作,我遵循了 this answer。我的(工作)"httpd-vhosts.conf" 文件看起来像这样

<VirtualHost *:80>
    ServerAdmin jesuscc1993@gmail.com
    DocumentRoot "Z:/Projects/Web/MetalTxus Site"
    ServerName metaltxus.test
    ServerAlias www.metaltxus.test
    <Directory "Z:/Projects/Web/MetalTxus Site">
        #Options FollowSymLinks
        Options Indexes FollowSymLinks
        AllowOverride All
        Order deny,allow
        Allow from all
    </Directory>
</VirtualHost>

据我所知,我应该将 "Indexes" 更改为“-Indexes”,以使 Web 加载 "index.html" 而不是 Web 目录。

但是,当我这样做时,我的 WAMPServer 不会启动。如果我删除了 "FollowSymLinks" 选项,但我得到的只是一个“403 - Forbidden”页面("you don't have permission to access "/“在此服务器上”)。

由于寻找解决方案无济于事,我将其用作最后的资源。

我在 Windows 8.1 中使用最新的 WampServer 版本。我想测试一个 AngularJS 应用程序。

如果您需要更多信息,请继续询问。

试试这个:-

<VirtualHost *:80>
    ServerAdmin jesuscc1993@gmail.com
    DocumentRoot "Z:/Projects/Web/MetalTxus Site"
    ServerName metaltxus.test
    ServerAlias www.metaltxus.test
    <Directory "Z:/Projects/Web/MetalTxus Site">
        AllowOverride All
        Options Indexes FollowSymLinks
        Require all granted
    </Directory>
</VirtualHost>

Require all granted 是 Apache 2.4 语法,您在使用

时使用 Apache 2.2 语法
Order deny,allow
Allow from all

现在您需要做的就是在 "Z:/Projects/Web/MetalTxus Site" 文件夹中放置一个名为 index.htmlindex.php 的文件。

我建议删除文件夹名称中的 space MetalTxus Site 这不是绝对必要的,但它消除了另一种可能的复杂性。

此外,如果您实际上并不是要向 The Universe 授予站点访问权限,请尝试使用

Require local

如果您希望仅通过内部网络上的其他 PC 访问该站点,请使用

Require local
Require ip 192.168.1  

补充建议:

还要检查 httpd.con 是否取消注释该行

LoadModule dir_module modules/mod_dir.so

安有这个

<IfModule dir_module>
    DirectoryIndex index.php index.php3 index.html index.htm
</IfModule>