1. 程式人生 > >nginx設定404頁面跳轉

nginx設定404頁面跳轉

如果網頁的連結地址改變了,在通過這個地址訪問的時候會返回一個錯誤碼404.表示沒有找到該地址內容.這個在建站初期是很容易發生的事.我的文章開始是通過中文名作為URL的,後來改為數字作為URL.這時網上已經有很多文章中儲存了以前的已經失效的地址.這樣導致搜尋引擎抓取網頁時會有大量的失效連結.死連數量多會導致搜尋引擎降權, 我的網站dashidan.com就沒有被bing收錄. 很慘痛的教訓.針對404有2種補救措施。發生404錯誤時指向404.html頁面或者做網頁重定向.

1 nginx設定404錯誤指向頁面

更改nginx.conf中在server區域加入error_page頁面:

error_page 404
/404.html

2 製作一個404.html頁面

可以做一個靜態html頁面來作為道歉頁面,404頁面最好有主頁的連結,方便使用者找到主頁.參考頁面http://dashidan.com/404.html.

3 重啟nginx使配置生效

重啟完成後,可以輸入一個不存在的頁面來檢視效果.

4 避免出現404錯誤

網頁避免出現404錯誤的最佳方案是在設計網站之初對整體的URL做好完整的規劃. 否則只能在出現問題後補救了. 以大屎蛋教程網的url規劃為例:

  • 文章均放在article目錄
  • 文章根據語言分類 article/java, article/mongodb...
  • 圖片放在img目錄
  • 下載資源放在download目錄
  • css檔案放在css目錄
  • js指令碼檔案放在js目錄

有了合理的規劃就能最大程度避免出現404錯誤.

5 roboot.txt遮蔽404頁面

在roboot.txt檔案中加入死鏈url,來避免搜尋引擎訪問並收錄已失效的網頁.也是針對404錯誤的一種補救措施.這種方式也是在外部連結地址無法修改的情況的解決方案.通過這種方式告訴搜尋引擎這些頁面不存在了,從索引中移除, 減少搜尋引擎中的死鏈.對網站評級有一定的幫助.

通過robot設定遮蔽指定網頁的示例:

User-agent:*Disallow:/article/java/basic/遮蔽.html
Disallow:/article/java/basic/大屎蛋教程網Disallow:/article/java
/basic/dashidan.com

6 nginx對404頁面進行301重定向

return301 https://$server_name$request_uri;