整合營(yíng)銷服務(wù)商

          電腦端+手機(jī)端+微信端=數(shù)據(jù)同步管理

          免費(fèi)咨詢熱線:

          php 輸出404狀態(tài)碼

          php 輸出404狀態(tài)碼

          天在做一個(gè)php數(shù)據(jù)提交的小功能時(shí),需要在判斷一個(gè)值是如果為空時(shí),就讓后臺(tái)的邏輯頁(yè)面返回 404 狀態(tài)碼,提示用戶頁(yè)面不存在。那么接下來(lái),飛鳥(niǎo)慕魚(yú)博客要說(shuō)的是 php 如何返回或輸出 html 404 的狀態(tài)碼。

          php header()函數(shù)

          header():函數(shù)向用戶客戶端發(fā)送原始的 HTTP 報(bào)頭。

          語(yǔ)法:

          header(string,replace,http_response_code)
          

          參數(shù):

          string:必需。規(guī)定要發(fā)送的報(bào)頭字符串。

          replace:(可選)表示該報(bào)頭是否替換之前或添加第二個(gè)報(bào)頭,默認(rèn)為 true

          http_response_code:(可選),把 HTTP 狀態(tài)強(qiáng)制為指定的值

          例:

          header("Cache-Control: no-cache");
          header("Location: http://www.baidu.com");
          

          php輸出 html 404 狀態(tài)碼的方法

          方法1:

          使用上面所介紹的 header() 函數(shù),來(lái)輸出 HTML 404 狀態(tài)碼

          代碼:

          <?php
          header('HTTP/1.1 404 Not Found');
          header("status: 404 Not Found");
          ?>
          

          方法2:

          http_response_code():獲取/設(shè)置響應(yīng)的 HTTP 狀態(tài)碼

          代碼:

          <?php
          http_response_code(404);
          ?>
          

          注:http_response_code() 函數(shù),只能在高于5.4(包括5.4)的php版本中使用

          一種:Nginx自己的錯(cuò)誤頁(yè)面

          Nginx訪問(wèn)一個(gè)靜態(tài)的html 頁(yè)面,當(dāng)這個(gè)頁(yè)面沒(méi)有的時(shí)候,Nginx拋出404,那么如何返回給客戶端404呢?

          看下面的配置,這種情況下不需要修改任何參數(shù),就能實(shí)現(xiàn)這個(gè)功能。

          server {

          listen 80;

          server_name www.test.com;

          root /var/www/test;

          index index.html index.htm;

          location / {

          }

          # 定義錯(cuò)誤頁(yè)面碼,如果出現(xiàn)相應(yīng)的錯(cuò)誤頁(yè)面碼,轉(zhuǎn)發(fā)到那里。

          error_page 404 403 500 502 503 504 /404.html;

          # 承接上面的location。

          location=/404.html {

          # 放錯(cuò)誤頁(yè)面的目錄路徑。

          root /usr/share/nginx/html;

          }

          }

          第二種:反向代理的錯(cuò)誤頁(yè)面

          如果后臺(tái)Tomcat處理報(bào)錯(cuò)拋出404,想把這個(gè)狀態(tài)叫Nginx反饋給客戶端或者重定向到某個(gè)連接,配置如下:

          upstream www {

          server 192.168.1.201:7777 weight=20 max_fails=2 fail_timeout=30s;

          ip_hash;

          }

          server {

          listen 80;

          server_name www.test.com;

          root /var/www/test;

          index index.html index.htm;

          location / {

          if ($request_uri ~* ‘^/$’) {

          rewrite .* http://www.test.com/index.html redirect;

          }

          # 關(guān)鍵參數(shù):這個(gè)變量開(kāi)啟后,我們才能自定義錯(cuò)誤頁(yè)面,當(dāng)后端返回404,nginx攔截錯(cuò)誤定義錯(cuò)誤頁(yè)面

          proxy_intercept_errors on;

          proxy_pass http://www;

          proxy_set_header HOST $host;

          proxy_set_header X-Real-IP $remote_addr;

          proxy_set_header X-Forwarded-FOR $proxy_add_x_forwarded_for;

          }

          error_page 404 /404.html;

          location=/404.html {

          root /usr/share/nginx/html;

          }

          }

          第三種:Nginx解析php代碼的錯(cuò)誤頁(yè)面

          如果后端是php解析的,需要加一個(gè)變量

          在http段中加一個(gè)變量 fastcgi_intercept_errors on 就可以了。

          指定一個(gè)錯(cuò)誤頁(yè)面:

          error_page 404 /404.html;

          location=/404.html {

          root /usr/share/nginx/html;

          }

          指定一個(gè)url地址:

          error_page 404 /404.html;

          error_page 404=http://www.test.com/error.html;

          04頁(yè)面是網(wǎng)站優(yōu)化中必不可少的基礎(chǔ)優(yōu)化之一,隨著網(wǎng)站運(yùn)營(yíng)時(shí)間的不斷延長(zhǎng),網(wǎng)站上原來(lái)的網(wǎng)頁(yè)內(nèi)容可能會(huì)被刪除,但是該網(wǎng)頁(yè)的鏈接地址往往會(huì)以各種內(nèi)鏈、外鏈形式存在,如果使用的是一些錨文本鏈接,這些文字內(nèi)容可能會(huì)吸引到用戶點(diǎn)擊,而對(duì)應(yīng)的頁(yè)面卻已經(jīng)刪除,此時(shí)如果沒(méi)有設(shè)置404頁(yè)面,那么用戶獲得的頁(yè)面就是一個(gè)錯(cuò)誤的頁(yè)面,而搜索引擎 獲得的路徑則變成了死路。正因如此又將這類鏈接稱之為死鏈

          一、什么是404頁(yè)面

          404頁(yè)面是客戶端在瀏覽網(wǎng)頁(yè)時(shí),服務(wù)器無(wú)法正常提供信息,或是服務(wù)器無(wú)法回應(yīng),且不知道原因所返回的頁(yè)面。當(dāng)用戶輸入了錯(cuò)誤的鏈接時(shí),返回的頁(yè)面,它會(huì)告訴瀏覽者其所請(qǐng)求的頁(yè)面不存在或鏈接錯(cuò)誤,同時(shí)引導(dǎo)用戶使用網(wǎng)站其他頁(yè)面而不是關(guān)閉窗口離開(kāi),自定義404錯(cuò)誤頁(yè)面是增強(qiáng)用戶體驗(yàn)的很好的做法。

          二、404頁(yè)面作用

          404頁(yè)面是網(wǎng)站必備的一個(gè)頁(yè)面,它承載著用戶體驗(yàn)與SEO優(yōu)化的重任。404頁(yè)面通常為用戶訪問(wèn)了網(wǎng)站上不存在或已刪除的頁(yè)面,服務(wù)器返回的404錯(cuò)誤。如果站長(zhǎng)沒(méi)有設(shè)置404頁(yè)面 ,會(huì)出現(xiàn)死鏈接,蜘蛛爬行這類網(wǎng)址時(shí),不利于搜索引擎收錄。

          三、404頁(yè)面錯(cuò)誤提示

          是WWW網(wǎng)站訪問(wèn)比較經(jīng)常出現(xiàn)的錯(cuò)誤。最常見(jiàn)的出錯(cuò)提示:404 NOT FOUND。404頁(yè)面就是當(dāng)用戶輸入了錯(cuò)誤的鏈接時(shí),返回的頁(yè)面。

          四、404頁(yè)面對(duì)seo的影響

          自定義404錯(cuò)誤頁(yè)面是增強(qiáng)用戶體驗(yàn)的很好的做法,但在應(yīng)用過(guò)程中往往并未注意到404頁(yè)面對(duì)搜索引擎的影響,譬如:錯(cuò)誤的服務(wù)器端配置導(dǎo)致返回狀態(tài)碼“200”或自定義404錯(cuò)誤頁(yè)面使用Meta Refresh導(dǎo)致返回“302”狀態(tài)碼。

          五、404頁(yè)面設(shè)置的好處

          1、引導(dǎo)用戶不要關(guān)閉網(wǎng)站,增強(qiáng)用戶體驗(yàn)。

          2、防止網(wǎng)站出現(xiàn)死鏈接。

          六、404頁(yè)面設(shè)置方法

          方法一:下載404頁(yè)面模板

          1、下載后,解壓文件,里面有一個(gè)404文件夾和404.php兩個(gè)文件;如下圖;需要注意的是404文件里面有一張圖片,圖片和404文件夾請(qǐng)不要重命名,以免影響顯示效果。

          2、用Dreamweaver軟件,打開(kāi)404.php這個(gè)文件,如下圖所示,將雙引號(hào)之間的“http://idc02.com”修改成你自己的網(wǎng)址,修改完成后,點(diǎn)擊“文件”-“保存”。

          3、打開(kāi)FTP上傳工具,將404文件夾和404.php上傳到網(wǎng)站的根目錄的主題文件夾,如果提示覆蓋的話直接覆蓋。(若你不知道你的網(wǎng)站根目錄是哪個(gè)文件夾,可以咨詢你的空間服務(wù)商)。

          4、上傳完成后,登陸空間控制面板,找到出錯(cuò)頁(yè)面(一般空間的名稱可能有所不同,要是沒(méi)找到的話就咨詢一下空間服務(wù)商看看),在“出錯(cuò)頁(yè)面”中進(jìn)行設(shè)置。

          5、最后我們打開(kāi)瀏覽器,輸入我們的網(wǎng)址,在網(wǎng)址后面隨意敲打一些字母或數(shù)字,然后回車,就能看到如下404頁(yè)面效果圖了,當(dāng)我們點(diǎn)擊“返回網(wǎng)站首頁(yè)”時(shí),就會(huì)回到我們網(wǎng)站的首頁(yè),這樣一個(gè)簡(jiǎn)單的404頁(yè)面就設(shè)置好了!

          方法二:制作404頁(yè)面

          1、打開(kāi)Dreamweaver軟件,(不知道Dreamweaver軟件怎么用的話百度,這里就不多說(shuō)了)點(diǎn)擊新建php文件,在標(biāo)題中自定義書(shū)寫(xiě)你想要書(shū)寫(xiě)的內(nèi)容,在標(biāo)簽中自定 義書(shū)寫(xiě)你想要書(shū)寫(xiě)的內(nèi)容,然后點(diǎn)擊文件保存,文件名為404,保存到桌面

          2、打開(kāi)FTP軟件,登陸FTP,找到網(wǎng)站根目錄,找到主題文件件,找到404.php文件,把制作好的404頁(yè)面上傳,替換原來(lái)的404.php,如果提示覆蓋直接覆蓋。打開(kāi)網(wǎng)站,輸入錯(cuò)誤地址,檢測(cè)404頁(yè)面是否生效。這樣我們網(wǎng)站404頁(yè)面最簡(jiǎn)單的制作就完成了。

          方法三:(適合對(duì)wordpress代碼比較熟悉的同學(xué)來(lái)操作,若你對(duì)代碼尚不熟悉的情況下,這里建議你使用第一種方法來(lái)設(shè)置404頁(yè)面)

          1、我們通過(guò)學(xué)習(xí)“wordpress模板結(jié)構(gòu)分析”,我們知道index.php是存放網(wǎng)站的首頁(yè)模板的地方,當(dāng)然了,事實(shí)上這也不完全是這樣的,首頁(yè)模板的名稱與制作主題(模板)的人的習(xí)慣和喜好有關(guān),這只是一個(gè)代號(hào)而已,如果你高興,這個(gè)代號(hào)叫“awt”、“bog”都行,熟悉代碼的童鞋一般就能很快找到首頁(yè)模板的文件。

          2、找到首頁(yè)模板文件后,(這里我們拿index.php文件來(lái)演示),從FTP工具上下載下來(lái),并重命名為404.php

          3、用Dreamweaver軟件打開(kāi)404.php,將文件中最大的

          標(biāo)簽里面的內(nèi)容全部刪除,然后在標(biāo)簽里面書(shū)寫(xiě)如下內(nèi)容:

          你要查找的內(nèi)容不存在!返回網(wǎng)站首頁(yè)

          編輯好后,點(diǎn)擊“文件”-“保存”。

          4、將修改好的404頁(yè)面上傳至你的網(wǎng)站根目錄/wp-content/themes/你安裝的主題/這個(gè)路徑即可。

          以上三種方法就是比較簡(jiǎn)單的404頁(yè)面設(shè)置,當(dāng)然現(xiàn)在大部分網(wǎng)站主題都自帶了404頁(yè)面設(shè)置,如果你不滿意網(wǎng)站主題自帶的404頁(yè)面的話可自行制作或修改。

          七、設(shè)置404頁(yè)面注意事項(xiàng)

          1、不要將404錯(cuò)誤直接轉(zhuǎn)向到網(wǎng)站首頁(yè),這將導(dǎo)致首頁(yè)不被收錄

          2、/Error.html 前面不要帶主域名,否則返回的狀態(tài)碼是302或200狀態(tài)碼

          3、404頁(yè)面符合網(wǎng)站自身的設(shè)計(jì)風(fēng)格,最好能加入網(wǎng)站導(dǎo)航和底部(尤其是網(wǎng)站地圖)

          4、不要使用絕對(duì)URL,如果使用絕對(duì)URL返回的狀態(tài)碼是302+200

          5、404頁(yè)面設(shè)置完成,一定要檢查是否正確。但http頭信息返回的一定要是404狀態(tài)。這主要是對(duì)搜索引擎有關(guān)系,因?yàn)槿绻憔W(wǎng)站產(chǎn)生較多頁(yè)面時(shí)候但搜索引擎看到的是很多一樣 的正常頁(yè)面,有可能會(huì)誤被認(rèn)為作弊。

          6、404頁(yè)面不要自動(dòng)跳轉(zhuǎn),讓用戶來(lái)決定去向。這涉及到404頁(yè)面的制作,提供用戶體驗(yàn)很重要,404頁(yè)面制作很有學(xué)問(wèn)。

          7、提示訪客檢查拼寫(xiě)

          還有一個(gè)可能:訪客看到404錯(cuò)誤頁(yè)面是由于他們自己在輸入U(xiǎn)RL網(wǎng)址時(shí)出現(xiàn)了拼寫(xiě)錯(cuò)誤。提示訪客檢查他們的拼寫(xiě),但不要失禮。就像我們?cè)谏厦嫣岬降模愕拇朕o不要讓訪客們

          感到你是在責(zé)備他們。

          8、讓頁(yè)面返回404

          每個(gè)網(wǎng)頁(yè)都有一個(gè)服務(wù)器響應(yīng)代碼。 代碼200是指頁(yè)面一切正常,404則是指頁(yè)面無(wú)法被找到。如果你已經(jīng)指定了自定義的404錯(cuò)誤頁(yè)面,則需要確保頁(yè)面的標(biāo)題是返回正確的響應(yīng) 代碼。有幾種不同的方法可以做到這一點(diǎn),最簡(jiǎn)單的就是用你的htaccess文件來(lái)指定錯(cuò)誤頁(yè)面。

          9、幫助訪客

          404錯(cuò)誤頁(yè)面已經(jīng)呈現(xiàn)在訪客面前,表明這個(gè)頁(yè)面并不是他們正在搜尋的。所以你應(yīng)該設(shè)法幫助他們找到原來(lái)的頁(yè)面。確保你的錯(cuò)誤頁(yè)中包含一個(gè)選項(xiàng)來(lái)協(xié)助用戶尋找他們想要的頁(yè)面,甚至可以包括有過(guò)更改的頁(yè)面的鏈接。

          10、放置網(wǎng)站主頁(yè)鏈接

          不要讓訪客無(wú)處可去或是無(wú)法找到你的網(wǎng)站信息。至少應(yīng)該有一個(gè)鏈接鏈回你的網(wǎng)站主頁(yè)。這樣一來(lái),從其他網(wǎng)站鏈接而來(lái)的訪客就可以了解你以及你的網(wǎng)站,甚至他們可能在你的網(wǎng)站中找到一些他們喜歡的內(nèi)容。

          11、保持品牌風(fēng)格

          我們都看過(guò)非??岬摹白屧L客發(fā)現(xiàn)一個(gè)巨大的“復(fù)活節(jié)蛋”“的錯(cuò)誤頁(yè)面的設(shè)計(jì)案例。但千萬(wàn)不要使這個(gè)頁(yè)面的設(shè)計(jì)與你網(wǎng)站的其他頁(yè)面相差太大,否則會(huì)看起來(lái)這個(gè)頁(yè)面不像你網(wǎng)站的設(shè)計(jì),會(huì)讓訪客產(chǎn)生疑惑,誤以為自己已經(jīng)被帶到了一個(gè)外部網(wǎng)站。

          12、修復(fù)你的無(wú)效鏈接

          如果你得到的數(shù)據(jù)顯示有大量的訪客訪問(wèn)您的404頁(yè)面(檢查你的網(wǎng)站的分析數(shù)據(jù)來(lái)確定數(shù)量),這表明你的網(wǎng)站上有很多無(wú)效鏈接。你完全可以通過(guò)修復(fù)這些鏈接來(lái)阻止訪客進(jìn)入404頁(yè)面。像SiteBeam和Nibbler這樣的網(wǎng)站測(cè)試工具可以幫助檢查是否有無(wú)效鏈接,使你能夠迅速找到并修復(fù)他們而不必等待別人來(lái)告訴你。

          總結(jié):盡管404頁(yè)面被用戶看到的概率相對(duì)全站的其他頁(yè)面要小很多,但隨著網(wǎng)站的長(zhǎng)期積累,404頁(yè)面難免會(huì)出錯(cuò)(如星辰seo博客,雖然現(xiàn)在頁(yè)面不是很多,但最近也曾出現(xiàn)過(guò)錯(cuò)誤的鏈接。)無(wú)論是用戶的誤操作還是服務(wù)器的原因,這是一個(gè)極少數(shù)才會(huì)出現(xiàn)的錯(cuò)誤情況,作為網(wǎng)頁(yè)的設(shè)計(jì)者或者開(kāi)發(fā)者,有時(shí)候我們無(wú)法控制錯(cuò)誤頁(yè)面的出現(xiàn),但我們可以通過(guò)使用一個(gè)定制的404錯(cuò)誤頁(yè)面將損害降到最低。好的用戶體驗(yàn)是我們不能放過(guò)任何一個(gè)小的細(xì)節(jié),一我們需要在這個(gè)頁(yè)面很好的把信息傳達(dá)給用戶,二引導(dǎo)用戶下一步的操作,引 導(dǎo)用戶留在我們的網(wǎng)站而不是沮喪的關(guān)閉窗口。從而提高用戶體驗(yàn),最后我要說(shuō)的就是雖然404頁(yè)面屬于網(wǎng)站結(jié)構(gòu)優(yōu)化中的一個(gè)細(xì)節(jié)部分,只要我們把這些細(xì)節(jié)問(wèn)題一一了解透徹,我相信對(duì)于一般的網(wǎng)站的SEO診斷是沒(méi)任何問(wèn)題的

          1,遠(yuǎn)程桌面連接,進(jìn)入服務(wù)器。

          2,打開(kāi)Internet信息服務(wù)(IIS)管理器,并右擊左側(cè)例表中“網(wǎng)站”項(xiàng)下對(duì)應(yīng)的網(wǎng)站。拿以下網(wǎng)站舉例,右擊唯一出現(xiàn)的那個(gè)web項(xiàng)即可,然后點(diǎn)擊“屬性”,如下圖所示:

          3,點(diǎn)擊“自定義錯(cuò)誤”選項(xiàng)卡,將滾動(dòng)條拖下來(lái)。將404,404:2,404:3設(shè)置為您上傳上去的404頁(yè)面文件,如下圖所示:

          注意:消息類型要設(shè)置為“文件”,如下圖所示:

          按道理來(lái)說(shuō),按上面方法設(shè)置后就可以了。按照上面方法設(shè)置后卻不起作用。我訪問(wèn)不存在的網(wǎng)址時(shí),并沒(méi)有跳轉(zhuǎn)進(jìn)入到我設(shè)置好的404錯(cuò)誤頁(yè)面。

          為什么網(wǎng)站設(shè)置好404錯(cuò)誤頁(yè)面后不起作用?

          我在網(wǎng)上搜索后,才知道需要將404.htm文件加上權(quán)限IIS_WPG,于是打開(kāi)我的網(wǎng)站所在的文件夾,右擊404.htm文件并點(diǎn)擊“屬性”,然后在彈出窗口中點(diǎn)擊“安全”選項(xiàng)卡。卻神奇地發(fā)現(xiàn)上面的“組或用戶名稱”中并沒(méi)有IIS_WPG這一項(xiàng)。如下圖所示:

          操作到這里點(diǎn)擊了上圖紅框中的“添加”按鈕。然后在彈出窗口中點(diǎn)擊“高級(jí)”,如下圖所示:

          然后再點(diǎn)擊下圖紅框中的“立即查找”按鈕,稍等一秒鐘,然后點(diǎn)擊搜索結(jié)果中的IIS_WPG并點(diǎn)擊確定按鈕即可。

          這樣就設(shè)置好了。我在瀏覽器中訪問(wèn)我網(wǎng)站上不存在的網(wǎng)頁(yè)時(shí)就自動(dòng)跳轉(zhuǎn)到了指定的404錯(cuò)誤頁(yè)面上去了。另外網(wǎng)上還說(shuō)要確保404錯(cuò)誤頁(yè)面文件要超過(guò)512B,如果沒(méi)有超過(guò)的話是不行的。這個(gè)因?yàn)槲覜](méi)有測(cè)試過(guò)。如果您按照上面的方法設(shè)置后,還是不起作用的話,可以看下文件占用空間大小,確保其超過(guò)了512B。


          主站蜘蛛池模板: 亚洲av高清在线观看一区二区 | 中文字幕日韩丝袜一区| 久久青草国产精品一区| 免费高清av一区二区三区| 无码少妇一区二区三区| 国产亚洲综合精品一区二区三区| 五十路熟女人妻一区二区| 国产精品成人一区二区| 精品一区二区三区免费毛片| 亚洲av无码一区二区三区人妖 | 波多野结衣av高清一区二区三区| 无码人妻精品一区二区三区在线 | 中文字幕一区二区三区四区| 亚洲一区二区三区乱码在线欧洲| 精品日韩一区二区三区视频| 国产观看精品一区二区三区| 国产高清一区二区三区视频| 无码精品尤物一区二区三区| 久久亚洲日韩精品一区二区三区| 97久久精品一区二区三区| 国产一区二区在线看| 伊人色综合一区二区三区| www.亚洲一区| 好湿好大硬得深一点动态图91精品福利一区二区 | 亚洲精品日韩一区二区小说| 亚洲综合一区二区精品久久| 午夜天堂一区人妻| 国产成人久久精品区一区二区| 久久99国产精品一区二区| 久久国产精品免费一区二区三区| 久久久久人妻精品一区三寸蜜桃 | 四虎永久在线精品免费一区二区 | 无码人妻精品一区二区三18禁 | 视频在线一区二区| 精品乱子伦一区二区三区| 国产午夜精品一区二区三区| 中文字幕一区二区三区永久| 日本中文字幕一区二区有码在线| 国产精品分类视频分类一区| 亚洲综合无码一区二区痴汉 | 成人日韩熟女高清视频一区|