Apache2 无法找到新创建的页面

Apache2 无法找到新创建的页面

我刚刚在 Ubuntu 上安装了一个 Apache 服务器,一切顺利,我可以访问起始页。但是,我想创建另一个位于 /var/www/test 的页面。我希望能够通过地址访问它http://xxx.xxx.xxx.xxx/测试。我已经创建了目录,插入了 html 文件并将我的配置更改为:

<Directory /var/www/>
        Options Indexes FollowSymLinks
        AllowOverride All
        Require all granted
</Directory>

<Directory /var/www/test>
        Options Indexes FollowSymLinks
        AllowOverride None
        Require all granted
</Directory>

但不幸的是,当我尝试访问此页面时收到错误:未找到该服务器上未找到请求的 URL。

Apache/2.4.29(Ubuntu)服务器

我在这里做错了什么?

答案1

URL 空间和磁盘上的文件的对应关系由 Apache 的文档根目录指令。如果你的主文件或<VirtualHost>配置文件中有如下一行:

DocumentRoot /var/www/html

(您可能已在 中设置了此项/etc/apache2/sites-enabled/000-default.conf),那么无论何时您向服务器请求http://example.com/path/to/file.html,您都将获得文件 的内容/var/www/html/path/to/file.html

在您的情况下,您放置了一个名为的文件(可能)index.html/var/www/test但服务器正在搜索/var/www/html/test/index.html

目录您添加的部分仅指定了 的权限和其他选项/var/www/test,并未将其包含在服务器的搜索路径中。此外,目录选项是继承的,因此目录/var/www/test会继承 的选项/var/www(无需再次指定相同的选项)。

答案2

首先,您不必<Directory>为网站中的每个目录创建新块。其次,如果您尝试访问新文件而不指定其名称,请确保它是一个索引文件。例如:您创建了一个/var/www/test/index.html文件,您有一个DirectoryIndex index.html指令(有关其使用的更多示例和信息可以在这里http://localhost/test),然后您尝试通过或通过浏览器访问http://localhost/test/index.html(我在这里假设您已经配置了DocumentRoot指向/var/www目录的指令。

相关内容