我刚刚在 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
目录的指令。