如何使我的Yii2 404页面显示在实时服务器上

时间:2019-03-27 12:12:10

标签: php yii2 yii2-basic-app

我在Yii安装的view文件夹中自定义了404.php页面。在404.php页上显示网站页眉和页脚以及自定义内容的本地服务器上非常有效。

但是,当我上载到实时服务器时,如果找不到页面,则不会显示404.php页面,而是显示带有消息Sorry! This page does not exist的纯白色页面。 我怎样才能解决这个问题?

很显然,没有使用view / 404.php。我的error.php的内容如下:

<?php

/* @var $this yii\web\View */
/* @var $name string */
/* @var $message string */
/* @var $exception Exception */

use yii\helpers\Html;

$this->title = $name;
?>
                <!----Section Title Starts---->
                <div class="article-title-wrapper uk-section uk-section-primary">
                    <div class="uk-container">

                        <div class="uk-width-5-6@l uk-margin-auto">

                            <div class="uk-flex uk-flex-center">
                                <div class="section-intro uk-width-1-1 uk-width-2-3@l uk-text-center" uk-scrollspy="target: > div; cls:uk-animation-fade; repeat: true">
                                    <div class="page-title">
                                        <h1 class="uk-article-title">Page Not Found</h1>
                                    </div>
                                </div>
                            </div>
                        </div>          
                    </div>
                </div>  
                <!----Section Title ends---->

                <!----Section Content Starts---->
                <div class="article-content uk-section uk-section-default uk-padding-remove-bottom">
                    <div class="uk-container">
                        <div class="left-indent">
                            <div class="uk-width-5-6@l uk-margin-auto">
                                <div class="uk-flex uk-flex-center">
                                    <div class="section-content uk-width-1-1">
                                        <article class="uk-article uk-margin-large-bottom uk-text-center">
                                            <p class="uk-text-large">Sorry, but the page you were trying to view does not exist.</p>
                                        </article>
                                    </div>
                                </div>

                                <hr class="double">                     
                            </div>
                        </div>                      
                    </div>
                </div>  
                <!----Section Content ends---->

我已经检查了here给出的答案,但确实可以解决我的问题。我没有更改显示错误的默认配置。根据Yii2的默认配置将使用-YOUR_APP / views / site / error.php显示错误。这在我的本地服务器上有效,但在实时服务器上不起作用,这是我的问题。

更新: 我有两个互联网连接。我切换了互联网连接,突然发现404页面正常显示。我切换回另一个连接,问题返回。我已经来回切换了,很明显,由于未知原因,我可以在一个Internet连接上获得正确的404页面,而在另一个Internet连接上却不起作用。这似乎不正常。

然后,我在Internet连接上使用了VPN,该VPN没有带来正确的404页面,并且效果也很好。是否存在拒绝某些类型的连接的安全功能?

1 个答案:

答案 0 :(得分:0)

您需要在 web / index.php 中设置以下内容,或者对于高级应用浏览,请设置为 frontend / web / index.php

defined('YII_DEBUG') or define('YII_DEBUG', false);

OR

您可以使用状态代码引发自定义错误。例如,

throw new \yii\web\NotFoundHttpException(status code);