【问题标题】:How to configure custom 403 view in Laravel 4如何在 Laravel 4 中配置自定义 403 视图
【发布时间】:2015-05-21 21:11:04
【问题描述】:

目前我在 start/global.php 上设置了错误页面,正如 Laravel 文档中推荐的那样。

代码如下:

App::error(function(Exception $exception, $code)
{
    if ( ! Config::get('app.debug'))
    {
        $view = (View::exists("error/{$code}")) ? "error/{$code}" : "error/404";
        return Response::view($view);
    }
}

我的观点在哪里

app/views/error/*

我已成功测试 503、500 和 400,但错误页面 403 显示默认 apaches 默认值,如图所示:

不知道为什么会这样

可能我以错误的方式测试 403 页面... 我知道如果运行 App::abort(403),我可以测试页面 403,但我正在寻找一种方法来验证它在真实案例中的工作情况。

也许我的 Apache 配置因 Laravel 自定义错误页面而崩溃?

提前致谢,

【问题讨论】:

    标签: php apache laravel http-status-code-403


    【解决方案1】:

    ErrorDocument 不允许在DocumentRoot 之外定位,因此您唯一的选择是使用Alias

    将以下行添加到您的public 文件夹中的.htaccess

    ErrorDocument 403 /errors/403.blade.php
    

    以及VirtualHost 定义的以下行(.htaccess 中不允许使用Alias

    Alias /errors/ /path/to/resources/views/errors/
    

    【讨论】:

    • 如果它不会导致不定式循环,这可能会起作用
    • 循环表明 Apache 配置存在问题。将mod_rewrite 的日志级别至少设置为trace3 (LogLevel alert rewrite:trace3),然后检查日志。
    【解决方案2】:

    授予img文件夹chmod -R 0765 img的权限

    【讨论】:

    • 文件夹的权限并非如此,我需要做的是个性化 403 页面,正如我之前提到的 404、500 和 503 自定义页面正在正常工作,但 403 仍然显示 apache默认 403 错误。
    猜你喜欢
    • 2013-07-14
    • 1970-01-01
    • 1970-01-01
    • 2019-01-25
    • 2019-10-30
    • 2014-04-28
    • 1970-01-01
    • 2015-08-10
    • 1970-01-01
    相关资源
    最近更新 更多