在phpcms 中,遇到沒有的欄目或者內容,只是提示沒有相應的資訊,但返回的狀態代碼依然是200,在最佳化上達不到效果,
那麼將如何來實現,其實也簡單,下面為操作步驟:
首先在網站根目錄,建一個page404.php檔案,
<?php header('http/1.1 404 Not found');?>或 <?php header( $_SERVER['SERVER_PROTOCOL']." 404 Not Found", true, 404 );?>或<?php header( $_ENV['SERVER_PROTOCOL']." 404 Not Found", true, 404 );?>404頁面
然後在phpcms/module/content/index.php中找到lists和show.
if(!$catid || !$id) header('location:/page404.php');if(!isset($CATEGORYS[$catid]) || $CATEGORYS[$catid]['type']!=0) header('location:/page404.php');if(!$r || $r['status'] != 99) header('location:/page404.php');
在lists中:
if(!isset($CATEGORYS[$catid]))
header('location:/page404.php');
這樣就可以,返回的狀態代碼是正確的。
現在有一種更好的方法,因為按上面的話,中間一步是302跳轉。
我們可以在global.fnc.php裡面建一個404頁面函數:
function page404(){header($_SERVER['SERVER_PROTOCOL']." 404 Not Found", true, 404 );require('page404.php');exit();}
然後把上面的header('location:/page404.php');替換成page404()就可以了。