VIrtualHost Options返回站点文件夹的索引


VIrtualHost Options returns an index of the site folder

我不确定为什么会发生这种情况,因为我对Apache不是很了解。下面是我的VirtualHost的副本。

如果这给了任何额外的帮助,如何让它的工作,我正试图运行一个CakePHP网站。我知道网站本身没有问题,因为我有另一个位置,我管理的代码,可以让它通过Apache本地运行那里。

<virtualhost *:80>
    DocumentRoot "C:/sites/sitename"
    ServerName dev.sitename.com
    ErrorLog "logs/sitename.com-error.log"
    CustomLog "logs/sitename.com-access.log" common

    <directory "C:/sites/sitename">
        Options Indexes FollowSymLinks MultiViews
        AllowOverride All
        Order Allow,Deny
        Allow from all
    </directory>
</virtualhost>

我在Apache 2.0和Win7sp1上运行这个

我从来没有找到真正的解决方案,使用我所走的路线。我下载了一个新的WAMP,很快就能让一切正常运行,没有问题。

为了阻止 apache显示目录列表,您需要禁用 indexes。此外,最好禁用MultiViews,因为这将启用内容协商,这可能会产生不必要的副作用

将选项改为;

 Options -Indexes FollowSymLinks

然后,检查.htaccess文件是否存在于您的webroot (C:/Sites/Sitename)中,因为该文件用于启用mod_rewrite

额外的指针/提示

首先,确保DocumentRoot指向应用程序的正确目录;

CakePHP的标准目录结构如下;

app
   /Config
   /Controllers
   /Views
   ......
   /webroot
lib
   /Cale
plugins

DocumentRoot应该指向你的' app/webroot'目录,该目录包含所有'public'文件。

将虚拟主机中的路径/目录更改为该目录并重新启动Apache。

如果你仍然得到403错误,把你在浏览器中访问的URL改为this;

http://mywebsite.com/index.php

如果工作,检查.htaccess文件是否存在于该目录中,并且mod_rewrite已安装在Apache中。

根据"thaJetzah"的回答(抱歉,还不能评论:))

403 Forbidden比有文件夹的索引要好,因为现在你可以看到logs/sitename.com-error.log日志,希望它能告诉你为什么它给出了403。

只是为了确保:index.php在文件夹"C:/sites/sitename"?

如果您不能像这样隔离错误,那么在这里发布error.log的输出,当您尝试访问该页面时,它会给您403。

如果你运行的是Ubuntu