我在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页面,并且效果也很好。是否存在拒绝某些类型的连接的安全功能?
答案 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);