nginx設定404頁面跳轉
阿新 • • 發佈:2019-01-24
如果網頁的連結地址改變了,在通過這個地址訪問的時候會返回一個錯誤碼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;