网站未检测到索引

时间:2015-09-30 12:54:03

标签: .htaccess httpd.conf apache2.4 directoryindex mod-dir

我正在研究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 - 当我加载网站时,它会显示物理文件索引
  • 当我获得403或目录索引时刷新浏览器将正确加载我的页面
  • 每次在浏览器中测试时清除浏览器缓存
  • 查看我的apache2.conf文件,可以确认没有其他人提及DirectoryIndex
  • 删除对DirectoryIndex的所有引用并将选项更改为+ Indexes - 这使一切正常,除非用户可以看到所有文件夹的目录索引,包括我不希望他们访问的文件夹

非常感谢任何帮助!

编辑: 使用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"

0 个答案:

没有答案