1

我不确定为什么会发生这种情况,因为我对 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 副本,很快就可以启动并运行所有内容,没问题。

4

3 回答 3

2

为了防止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”目录,其中包含所有“公共”文件。

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

如果您仍然收到 403 错误,请将您在浏览器中访问的 URL 更改为此;

http://mywebsite.com/index.php

如果这确实有效,请检查该.htaccess文件是否存在于该目录中并mod_rewrite安装在您的 Apache 中。

于 2013-04-20T23:01:03.003 回答
1

根据“thaJetzah”的回答(对不起,还不能评论:))

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

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

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

于 2013-04-21T09:01:27.370 回答
0

如果您正在运行 Ubuntu,请选中此项。

于 2013-04-21T06:57:01.773 回答