問題由來
昨天一網(wǎng)友在segmentfault.com上提問,無法做404重定向
打開對方的網(wǎng)站隨便輸入一個錯誤的地址發(fā)現(xiàn)給出了404代碼,但是頁面完全空白,并沒有顯示404頁面的設定內(nèi)容
當時就明白啥情況了,只要在nginx.conf配置文件上加上一句 fastcgi_intercept_errors on,就可以了
如果沒這句的不管是error_page 還是nginx自帶的404跳轉(zhuǎn)都不能正常顯示(訪問不存在的php頁面時可能會顯示“No input file specified.”)
什么是404頁面
如果碰巧網(wǎng)站出了問題,或者用戶試圖訪問一個并不存在的頁面時,此時服務器會返回代碼為404的錯誤信息,此時對應頁面就是404頁面。404頁面的默認內(nèi)容和具體的服務器有關。如果后臺用的是NGINX服務器,那么404頁面的內(nèi)容則為:404 Not Found
NGINX下如何自定義404頁面
1、更改nginx.conf在http定義區(qū)域加入: PRoxy_intercept_errors或者fastcgi_intercept_errors
2、更改nginx.conf,在server 區(qū)域加入: error_page 404 /404.html 或者 error_page 404 =http://www.xxx.com/404.html
3、更改后重啟nginx,,測試nginx.conf正確性
#502 等錯誤可以用同樣的方法來配置。
error_page 500 502 503 504 /50x.html;
error_page 500 501 502 503 504 @errpage;location @errpage { access_log logs/access.log maintry; proxy_pass url;}
注意事項:
1、要添加:fastcgi_intercept_errors on 或者 proxy_intercept_errors
這個指令指定是否傳遞4xx和5xx錯誤信息到客戶端,或者允許nginx使用error_page處理錯誤信息。你必須明確的在error_page中指定處理方法使這個參數(shù)有效
2.不要出于省事或者提高首頁權重的目的將首頁指定為404錯誤頁面,也不要用其它方法跳轉(zhuǎn)到首頁
3.自定義的404頁面必須大于512字節(jié),否則可能會出現(xiàn)IE默認的404頁面。例如,假設自定義了404.html,大小只有11個字節(jié)(內(nèi)容為:404錯誤)
新聞熱點
疑難解答