我正在研究Ubuntu 14.04.2 Apache 2.4.7
我设置了一个虚拟主机来提供来自/var/www/dev
的文件,配置文件对于dev.conf
来说是这样的:
<VirtualHost *:80>
ServerAdmin ubuntu@12.234.567.89
DocumentRoot /var/www/dev
ServerName dev.site.com
<Directory />
Options FollowSymLinks
AllowOverride All
</Directory>
<Directory /var/www/dev/>
Options -Indexes +FollowSymLinks
AllowOverride All
Require all granted
</Directory>
</VirtualHost>
我在/var/www/dev
目录中有许多文件,我不想编入索引,因此-Indexes
选项
但是我也在这里安装了wordpress,我希望这些文件能够正确地提供给浏览器。索引文件为index.php
,位于/var/www/dev/
我在同一个文档根目录中也有一个.htaccess文件,如下所示:
DirectoryIndex index.php index.html
# BEGIN WordPress
<IfModule mod_rewrite.c>
RewriteEngine On
RewriteBase /
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule . /index.php [L]
RedirectMatch 301 ^/terms-and-conditions\.php$ /terms-of-use
RedirectMatch 301 ^/privacy\.php$ /privacy-policy
</IfModule>
DirectoryIndex
应告诉浏览器使用index.php
文件,但我收到403 Forbidden错误。
我试过了:
/var/www/dev
的所有权更改为www-data:www-data
DirectoryIndex index.php
添加到dev.conf
标记内的<Directory /var/www/dev/>
文件 - 选项项目上方和下方mod_dir
是否有效(确实如此)+Indexes
- 当我加载网站时,它会显示物理文件索引apache2.conf
文件,可以确认没有其他人提及DirectoryIndex
非常感谢任何帮助!
编辑: 使用chrome和firefox开发工具 - 如果我单击禁用缓存选项(当开放工具打开时) - 网站加载正常 - 也许这是一个线索
编辑2: error.log输出这一行 -
AH01276: Cannot serve directory /var/www/dev/: No matching DirectoryIndex (index.php,index.html) found, and server-generated directory index forbidden by Options directive
access.log只显示我的浏览器详细信息 -
"GET / HTTP/1.1" 200 1462 "-" "Mozilla/5.0 (Windows NT 10.0; WOW64; rv:41.0) Gecko/20100101 Firefox/41.0"