【问题标题】:Laravel Setup - "AllowOverride all" is causing a 403Laravel 设置 - “AllowOverride all”导致 403
【发布时间】:2015-08-01 22:05:53
【问题描述】:

试图在服务器上运行一个测试 Laravel 项目。如果我导航到站点 URL,我会看到 Laravel 欢迎屏幕,但所有路由都不起作用。

为了解决这个问题,我更改了 laravel 网站指定的 .htaccess 文件。

问题是为了使用 .htaccess,我必须在我的虚拟主机文件中“全部允许覆盖”,这会导致显示 403 而不是欢迎页面。

我得到的错误是:

禁止

您无权访问此服务器上的 /。

此外,在尝试使用 ErrorDocument 处理请求时遇到 403 Forbidden 错误

仅出于测试目的,我已将整个 laravel 文件夹 777 以确保不存在文件权限问题。

任何帮助将不胜感激。谢谢

我的 .htaccess 的内容:

Options +FollowSymLinks
RewriteEngine On

RewriteCond %{REQUEST_FILENAME} !-d
RewriteCond %{REQUEST_FILENAME} !-f
RewriteRule ^ index.php [L]

我的 VirtaulHosts 的内容:

<VirtualHost *:80>

    ServerAdmin webmaster@localhost

    DocumentRoot /var/www/testProject1/public
    DirectoryIndex index.php
    <Directory />
            Options Indexes FollowSymLinks MultiViews
            AllowOverride all
            Order allow,deny
            Allow from all
    </Directory>
</VirtualHost>

【问题讨论】:

  • 请您用您的 VirtualHost 指令的内容更新您的问题?另外,请确保您没有将AllowOverride All 放入.htaccess 文件中。那应该只在你的VirtualHost 指令中。
  • 嗨,迈克,我已将这两条信息添加到原始问题中。谢谢
  • &lt;VirtualHost&gt; 标签在哪里?还是您只是没有将它们复制进去?
  • 是的,对不起,我有那些,只是没有过去。
  • 你使用的是什么版本的 Apache?

标签: .htaccess laravel webserver apache2 laravel-5


【解决方案1】:

&lt;Directory&gt; 必须引用绝对路径,而&lt;Location&gt; 可以引用相对于文档根目录的路径。

因此,改变:

<Directory />

到:

<Directory /var/www/testProject1/public>

别忘了重启 Apache。

【讨论】:

  • 嗨 Mike,如果我指定绝对路径,无论 AllowOverride 设置为“None”还是“All”,我都会收到相同的 403 错误。而以前只有“全部”。有什么想法吗?
  • 应该是All。请检查您的错误日志 - 那里会有更多详细信息。
  • 嗨,迈克,再次查看日志,我认为 mod_security 正在停止一切并给我一个 403。有没有办法暂时禁用它以进行验证?
  • httpd.conf 中,您应该可以注释掉加载mod_securityLoadModule 指令,但我自己从未尝试过。您能否分享日志中的相关条目?
  • 嗨,迈克,您最初的建议使它起作用,但我的 mod_security 停止了它的工作。我会接受你最初的回答是正确的。再次感谢!
猜你喜欢
  • 2013-09-15
  • 2012-08-02
  • 2014-08-21
  • 2015-09-12
  • 1970-01-01
  • 2016-09-09
  • 2017-12-11
  • 2017-01-25
  • 1970-01-01
相关资源
最近更新 更多