Warning: error_log(/data/www/wwwroot/hmttv.cn/caches/error_log.php): failed to open stream: Permission denied in /data/www/wwwroot/hmttv.cn/phpcms/libs/functions/global.func.php on line 537 Warning: error_log(/data/www/wwwroot/hmttv.cn/caches/error_log.php): failed to open stream: Permission denied in /data/www/wwwroot/hmttv.cn/phpcms/libs/functions/global.func.php on line 537
信我們訪問網站的過程中,經常會出現404 not found的情況,如果不做任何的處理,不但界面比較丑、不利于搜索引擎優化,而且用戶的體驗也很不好,用戶一懵B可能就會直接關閉頁面,離開你的站點。
網頁服務器默認的404頁
當網站上的某些頁面路徑發生了改變或者內容被刪除了,導致原地址訪問本頁面時,就會提示頁面不存在,這樣就產生了死鏈接,當一個網站死鏈接過多的時候,蜘蛛將無法繼續爬行,導致搜索引擎對網站的關注降低,影響你的網站整體權重、收錄及排名。
界面可以自定義,變得美觀大方
可以引流,在404頁面放上首頁鏈接,可以把用戶拉首頁,同樣可以讓蜘蛛再去爬一次首頁,這樣不僅僅讓搜索引擎的數據庫更快的刪除掉這些死鏈接,還能讓蜘蛛更加勤快的認識新網站。
……
自定義的404頁面
如果你用的虛擬主機,應該可以直接在控制面板中設置404頁,如果你用IIS服務器,打開IIS,在“網站屬性”中找到“自定義錯誤”,并將HTTP404錯誤文件指向一個新建的404.html,我們具體講一下Apache服務器如何設置404頁。
方法一:設置.htaccess文件
htaccess 文件是 Apache 服務器中的一個配置文件,可以幫我們實現:網頁 301 重定向、自定義 404 錯誤頁面、改變文件擴展名、允許/阻止特定的用戶或者目錄的訪問、禁止目錄列表、配置默認文檔等功能。
1.新建.htaccess文件
注意這個.htaccess文件沒有文件名只有后綴,所以并不能直接在window上通過修改文件后綴獲得,我們可以用命令行創建這個文件。
打開 cmd,cd 到指定目錄后,用如下命令便可創建一個 .htaccess 文件
echo.>.htaccess
htaccess 文件負責相關目錄下的網頁配置,我們把它放在根目錄下。
2.編輯該文件,將以下內容復制進去
ErrorDocument 404 /404.htm
注意:如果IE瀏覽器上沒有效果,肯定是你的 404 頁面內容太少了,至少需要 512 b才能征服它。
方法二:vhosts 設置
如果你設置過vhosts,可以直接打開 vhosts 文件,修改如下:
<VirtualHost *:80>
DocumentRoot "D:\phpStudy\WWW"
ServerName localhost
ErrorDocument 404 /404.htm
</VirtualHost>
第一種方法比較簡單但是比較耗費服務器資源,建議用第二種方法。另外,還需要注意兩點:1,不要在404頁上直接跳轉到首頁,搜索引擎會直接標記你的行為為違規行為。2,設置好以后最好再檢查一遍網頁的http狀態,如果是200狀態,表示這是一個正常頁面,會造成大量URL地址都是顯示這個頁面,搜索引擎會誤以為網站上有大量重復的內容,這樣可能會造成網站被降權或被K掉。
04頁面是網站優化中必不可少的基礎優化之一,隨著網站運營時間的不斷延長,網站上原來的網頁內容可能會被刪除,但是該網頁的鏈接地址往往會以各種內鏈、外鏈形式存在,如果使用的是一些錨文本鏈接,這些文字內容可能會吸引到用戶點擊,而對應的頁面卻已經刪除,此時如果沒有設置404頁面,那么用戶獲得的頁面就是一個錯誤的頁面,而搜索引擎 獲得的路徑則變成了死路。正因如此又將這類鏈接稱之為死鏈
一、什么是404頁面
404頁面是客戶端在瀏覽網頁時,服務器無法正常提供信息,或是服務器無法回應,且不知道原因所返回的頁面。當用戶輸入了錯誤的鏈接時,返回的頁面,它會告訴瀏覽者其所請求的頁面不存在或鏈接錯誤,同時引導用戶使用網站其他頁面而不是關閉窗口離開,自定義404錯誤頁面是增強用戶體驗的很好的做法。
二、404頁面作用
404頁面是網站必備的一個頁面,它承載著用戶體驗與SEO優化的重任。404頁面通常為用戶訪問了網站上不存在或已刪除的頁面,服務器返回的404錯誤。如果站長沒有設置404頁面 ,會出現死鏈接,蜘蛛爬行這類網址時,不利于搜索引擎收錄。
三、404頁面錯誤提示
是WWW網站訪問比較經常出現的錯誤。最常見的出錯提示:404 NOT FOUND。404頁面就是當用戶輸入了錯誤的鏈接時,返回的頁面。
四、404頁面對seo的影響
自定義404錯誤頁面是增強用戶體驗的很好的做法,但在應用過程中往往并未注意到404頁面對搜索引擎的影響,譬如:錯誤的服務器端配置導致返回狀態碼“200”或自定義404錯誤頁面使用Meta Refresh導致返回“302”狀態碼。
五、404頁面設置的好處
1、引導用戶不要關閉網站,增強用戶體驗。
2、防止網站出現死鏈接。
六、404頁面設置方法
方法一:下載404頁面模板
1、下載后,解壓文件,里面有一個404文件夾和404.php兩個文件;如下圖;需要注意的是404文件里面有一張圖片,圖片和404文件夾請不要重命名,以免影響顯示效果。
2、用Dreamweaver軟件,打開404.php這個文件,如下圖所示,將雙引號之間的“http://idc02.com”修改成你自己的網址,修改完成后,點擊“文件”-“保存”。
3、打開FTP上傳工具,將404文件夾和404.php上傳到網站的根目錄的主題文件夾,如果提示覆蓋的話直接覆蓋。(若你不知道你的網站根目錄是哪個文件夾,可以咨詢你的空間服務商)。
4、上傳完成后,登陸空間控制面板,找到出錯頁面(一般空間的名稱可能有所不同,要是沒找到的話就咨詢一下空間服務商看看),在“出錯頁面”中進行設置。
5、最后我們打開瀏覽器,輸入我們的網址,在網址后面隨意敲打一些字母或數字,然后回車,就能看到如下404頁面效果圖了,當我們點擊“返回網站首頁”時,就會回到我們網站的首頁,這樣一個簡單的404頁面就設置好了!
方法二:制作404頁面
1、打開Dreamweaver軟件,(不知道Dreamweaver軟件怎么用的話百度,這里就不多說了)點擊新建php文件,在標題中自定義書寫你想要書寫的內容,在標簽中自定 義書寫你想要書寫的內容,然后點擊文件保存,文件名為404,保存到桌面
2、打開FTP軟件,登陸FTP,找到網站根目錄,找到主題文件件,找到404.php文件,把制作好的404頁面上傳,替換原來的404.php,如果提示覆蓋直接覆蓋。打開網站,輸入錯誤地址,檢測404頁面是否生效。這樣我們網站404頁面最簡單的制作就完成了。
方法三:(適合對wordpress代碼比較熟悉的同學來操作,若你對代碼尚不熟悉的情況下,這里建議你使用第一種方法來設置404頁面)
1、我們通過學習“wordpress模板結構分析”,我們知道index.php是存放網站的首頁模板的地方,當然了,事實上這也不完全是這樣的,首頁模板的名稱與制作主題(模板)的人的習慣和喜好有關,這只是一個代號而已,如果你高興,這個代號叫“awt”、“bog”都行,熟悉代碼的童鞋一般就能很快找到首頁模板的文件。
2、找到首頁模板文件后,(這里我們拿index.php文件來演示),從FTP工具上下載下來,并重命名為404.php
3、用Dreamweaver軟件打開404.php,將文件中最大的
標簽里面的內容全部刪除,然后在標簽里面書寫如下內容:
你要查找的內容不存在!返回網站首頁
編輯好后,點擊“文件”-“保存”。
4、將修改好的404頁面上傳至你的網站根目錄/wp-content/themes/你安裝的主題/這個路徑即可。
以上三種方法就是比較簡單的404頁面設置,當然現在大部分網站主題都自帶了404頁面設置,如果你不滿意網站主題自帶的404頁面的話可自行制作或修改。
七、設置404頁面注意事項
1、不要將404錯誤直接轉向到網站首頁,這將導致首頁不被收錄
2、/Error.html 前面不要帶主域名,否則返回的狀態碼是302或200狀態碼
3、404頁面符合網站自身的設計風格,最好能加入網站導航和底部(尤其是網站地圖)
4、不要使用絕對URL,如果使用絕對URL返回的狀態碼是302+200
5、404頁面設置完成,一定要檢查是否正確。但http頭信息返回的一定要是404狀態。這主要是對搜索引擎有關系,因為如果你網站產生較多頁面時候但搜索引擎看到的是很多一樣 的正常頁面,有可能會誤被認為作弊。
6、404頁面不要自動跳轉,讓用戶來決定去向。這涉及到404頁面的制作,提供用戶體驗很重要,404頁面制作很有學問。
7、提示訪客檢查拼寫
還有一個可能:訪客看到404錯誤頁面是由于他們自己在輸入URL網址時出現了拼寫錯誤。提示訪客檢查他們的拼寫,但不要失禮。就像我們在上面提到的,你的措辭不要讓訪客們
感到你是在責備他們。
8、讓頁面返回404
每個網頁都有一個服務器響應代碼。 代碼200是指頁面一切正常,404則是指頁面無法被找到。如果你已經指定了自定義的404錯誤頁面,則需要確保頁面的標題是返回正確的響應 代碼。有幾種不同的方法可以做到這一點,最簡單的就是用你的htaccess文件來指定錯誤頁面。
9、幫助訪客
404錯誤頁面已經呈現在訪客面前,表明這個頁面并不是他們正在搜尋的。所以你應該設法幫助他們找到原來的頁面。確保你的錯誤頁中包含一個選項來協助用戶尋找他們想要的頁面,甚至可以包括有過更改的頁面的鏈接。
10、放置網站主頁鏈接
不要讓訪客無處可去或是無法找到你的網站信息。至少應該有一個鏈接鏈回你的網站主頁。這樣一來,從其他網站鏈接而來的訪客就可以了解你以及你的網站,甚至他們可能在你的網站中找到一些他們喜歡的內容。
11、保持品牌風格
我們都看過非常酷的“讓訪客發現一個巨大的“復活節蛋”“的錯誤頁面的設計案例。但千萬不要使這個頁面的設計與你網站的其他頁面相差太大,否則會看起來這個頁面不像你網站的設計,會讓訪客產生疑惑,誤以為自己已經被帶到了一個外部網站。
12、修復你的無效鏈接
如果你得到的數據顯示有大量的訪客訪問您的404頁面(檢查你的網站的分析數據來確定數量),這表明你的網站上有很多無效鏈接。你完全可以通過修復這些鏈接來阻止訪客進入404頁面。像SiteBeam和Nibbler這樣的網站測試工具可以幫助檢查是否有無效鏈接,使你能夠迅速找到并修復他們而不必等待別人來告訴你。
總結:盡管404頁面被用戶看到的概率相對全站的其他頁面要小很多,但隨著網站的長期積累,404頁面難免會出錯(如星辰seo博客,雖然現在頁面不是很多,但最近也曾出現過錯誤的鏈接。)無論是用戶的誤操作還是服務器的原因,這是一個極少數才會出現的錯誤情況,作為網頁的設計者或者開發者,有時候我們無法控制錯誤頁面的出現,但我們可以通過使用一個定制的404錯誤頁面將損害降到最低。好的用戶體驗是我們不能放過任何一個小的細節,一我們需要在這個頁面很好的把信息傳達給用戶,二引導用戶下一步的操作,引 導用戶留在我們的網站而不是沮喪的關閉窗口。從而提高用戶體驗,最后我要說的就是雖然404頁面屬于網站結構優化中的一個細節部分,只要我們把這些細節問題一一了解透徹,我相信對于一般的網站的SEO診斷是沒任何問題的
1,遠程桌面連接,進入服務器。
2,打開Internet信息服務(IIS)管理器,并右擊左側例表中“網站”項下對應的網站。拿以下網站舉例,右擊唯一出現的那個web項即可,然后點擊“屬性”,如下圖所示:
3,點擊“自定義錯誤”選項卡,將滾動條拖下來。將404,404:2,404:3設置為您上傳上去的404頁面文件,如下圖所示:
注意:消息類型要設置為“文件”,如下圖所示:
按道理來說,按上面方法設置后就可以了。按照上面方法設置后卻不起作用。我訪問不存在的網址時,并沒有跳轉進入到我設置好的404錯誤頁面。
我在網上搜索后,才知道需要將404.htm文件加上權限IIS_WPG,于是打開我的網站所在的文件夾,右擊404.htm文件并點擊“屬性”,然后在彈出窗口中點擊“安全”選項卡。卻神奇地發現上面的“組或用戶名稱”中并沒有IIS_WPG這一項。如下圖所示:
操作到這里點擊了上圖紅框中的“添加”按鈕。然后在彈出窗口中點擊“高級”,如下圖所示:
然后再點擊下圖紅框中的“立即查找”按鈕,稍等一秒鐘,然后點擊搜索結果中的IIS_WPG并點擊確定按鈕即可。
這樣就設置好了。我在瀏覽器中訪問我網站上不存在的網頁時就自動跳轉到了指定的404錯誤頁面上去了。另外網上還說要確保404錯誤頁面文件要超過512B,如果沒有超過的話是不行的。這個因為我沒有測試過。如果您按照上面的方法設置后,還是不起作用的話,可以看下文件占用空間大小,確保其超過了512B。
、背景
測試人員突然向我反饋,說線上的接口訪問不了,返回404了。確認問題確實存在,在查找原因的過程中接口恢復正常。感覺這個問題還是挺有意思,所以記錄下來。
二、404狀態碼
404 Not Found,一般情況都是指請求服務器上沒有的資源
三、解決問題的過程
1.首先想到的是,服務器上的接口文件沒了,登進去查看文件是正常的
2.考慮是否是nginx的配置更改導致訪問不到,查看了下也是正常
3.接口又恢復正常,考慮是不是公司網絡調整導致的,問了問運維網絡也沒有任何調整
4.查看nginx上面的日志發現確實請求到了服務器上,并且返回了404
查到這里之后就隱約感覺到可能要漲見識了
5.接下來查看了nginx的錯誤日志(error.log),看到頻繁報以下的報錯
18522#0: *5382085 recv() failed (104: Connection reset by peer) while reading response header from upstream
6.根據這個報錯查找網上資料,說是由于php的運行時間超過php-fpm設置的超時時間(request_terminate_timeout)會提示這個錯誤
7.將request_terminate_timeout設置值增大,重啟php-fpm,驗證問題解決
四、寫文檔真有用
1.之前的解決過程就是如第三步所示,但是在記錄問題的時候突然思考這種情況不應該報502的錯誤么......
2.在測試環境進行驗證下,寫個接口,里面sleep(50),在瀏覽器中訪問下,果然如預期返回了502......
3. ..........
4.繼續查找之前的error.log日志,發現還有以下的報錯
18523#0: *5381683 open() "/var/www/html/50x.html" failed (2: No such file or directory)
5.看了下nginx.conf,找到以下配置
error_page 500 502 503 504 /var/www/html/50x.html;
6.在測試環境驗證了下,出現了預期的404,大功告成。
*請認真填寫需求信息,我們會在24小時內與您取得聯系。