您无权访问此服务器上的 /。Apache,win 7

您无权访问此服务器上的 /。Apache,win 7

阅读有关此问题的所有帖子 - 但没有任何一篇能够帮助我解决此问题...

我刚刚将我所有的开发资料从 Vista 机器(运行良好)移动到了 Windows 7 机器 - Apache 2.2...并且我使用相同的配置文件...但是现在由于某种原因,我的 .htaccess 文件导致出现“您无权访问此服务器上的 /”的错误。

(我确信它是 .htaccess 文件 - 因为如果我从目录中删除或重命名该文件 - 该网站就会正常显示...)

现在 - .htaccess 文件用于方便使用短 URL,我无法简单地将其删除 - 我的网站无权做出这样的设计决定 - 我只是在管理它...

到目前为止-我已确保我拥有所有配置条目,如下所示:

Order allow,deny
Allow from all

并通过 Windows 文件/目录 UI - 我已经设置了 httpd 根目录和我的 wwwroot(位于我的用户文件夹中)的文件夹权限,以便本地用户拥有完全控制权...

但我仍然收到错误...真令人沮丧。

错误日志内容为:

Sat Jan 14 21:17:03 2012] [error] [client 127.0.0.1] Options FollowSymLinks or SymLinksIfOwnerMatch is off which implies that RewriteRule directive is forbidden: C:/Users/me/wwwroot/{path to site}/

有趣的是 - Options FollowSymLinks 在 conf 文件中 - 与之前完全一样......

有人愿意指导我解决 win 7 上的权限问题吗????

提前致谢/

答案1

使用文本编辑器打开 httpd.conf 文件。在 XAMPP 中,此文件位于 \apache\conf 目录中,找到以下代码行:

#LoadModule rewrite_module modules/mod_rewrite.so

删除该行中的 # 以启用该模块,如下所示:

LoadModule rewrite_module modules/mod_rewrite.so

保存 httpd.conf 文件并重新启动服务器重新启动 Apache 服务器

答案2

我认为,如果您有Allow,Deny并且 没有Deny语句,则存在隐式Deny from all。您应该交换顺序。如文档,无论如何,这样会更好,因为你们希望所有人都能做到。

通过使用,Deny,Allow您是在说:

  • 如果您的请求与拒绝规则匹配,并且允许规则,然后拒绝
  • 如果您的请求匹配拒绝匹配允许,然后允许
  • 如果您的请求不匹配拒绝但匹配允许,则允许
  • 如果您的请求不匹配,则拒绝

我相信这会给你你想要的行为,同时完全明确。

相关内容