NGINX 設定404錯誤頁面轉向

WBOY
發布: 2016-07-25 08:46:49
原創
1023 人瀏覽過
404頁
如果碰巧網站出了問題,或者當用戶試圖訪問一個並不存在的頁面時,此時伺服器會回傳代碼為404的錯誤訊息,此時對應頁面就是404頁面。 404頁面 的預設內容和具體的伺服器有關。如果後台用的是NGINX伺服器,那麼404頁的內容則為:
404 Not Found
nginx/0.8.6
為什麼要自訂404頁
為什麼要自訂404頁
為什麼要自訂404頁
為什麼要自訂404頁
在訪問時遇到上面這樣的404錯誤頁面,我想99%(未經調查,估計數據)的用戶會把頁面關掉,用戶就這樣悄悄的流失了。如果此時能有一個漂亮的頁 面能夠引導使用者去他想去的地方必然可以留住使用者。因此,每一個網站都應該自訂自己的404頁面。
NGINX下如何自訂404頁
IIS和APACHE下自訂404頁面的經驗介紹文章已經非常多了,NGINX的目前還比較少,湊巧我的幾台伺服器都是NGINX的,為了解決自家的問題特地對此作了深入的研究。研究結果表明,NGINX下配置自訂的404頁面是可行的,而且很簡單,只需如下幾步:
1.創建自己的404.html頁面
2.
更改nginx.conf在http定義區域加入:
fastcgi_intercept_errors on;
3.
在更改🎜>
3.
在更改區域加入:
error_page 404 = /404.html
4.
測試nginx.conf正確性:
/opt/nginx/sbint/nginx/sbint/nginx nginx –t
如果正確應該顯示以下資訊:
  1. the configuration file /opt/nginx/conf/nginx.conf syntax is ok
    configuration file /opt/nginx/conf/nginx.conf test is successful
  2. kill -HUP  `cat /opt/nginx/nginx.pid `
  3. 配置文件實例:

  4. ……


  5. http
  6. {
  7. include    
  8. charset  gb2312;
  9. server_names_hash_bucket_size 128;
  10. client_header_buffer_size 32k; 🎜>client_max_body_size 8m;
  11. sendfile on;
  12. tcp_nopush     on;
  13. keepalive_timeout 60;
  14. tcp_nodelay on; >fastcgi_send_timeout 300;
  15. fastcgi_read_timeout 300;
  16. fastcgi_buffer_size 64k;
  17. fastcgi_buffers 4 64k; _temp_file_write_size 128k;
  18. fastcgi_intercept_errors on;
  19. gzip on;
  20. gzip_min_length  1k;
  21. gzip_buffers  1k;
  22. gzip_buffers  1k;
  23. gzip_buffers 
  24. gzip_comp_level 2 ;
  25. gzip_types       text/plain application/x-javascript text/css application/xml;
  26. gzip_vary r.
複製程式碼
  #65的設定資訊

      server
  1. {
  2.    listen .65 .la;
  3.    index index.html index.htm index.php;
  4.    root  /opt/www/65;
  5.    /opt/www/65;
  6.    /opt/www/65;
  7.    /opt/).( ?$
  8.    {      
  9.      #fastcgi_pass  unix:/tmp/php-cgi.sock;
  10.      fastcgi_index index. php;
  11.      include fcgi.conf;
  12.    }
  13.    error_page  404 = /404.html; >
  14. #502 等錯誤可以用同樣的方法來設定。
  1.    error_page   500 502 503 504 = /50x.html;
  2.    ocation = /50x.html
  3.         }
  4.    log_format  65  '$remote_addr – $remote_user [$time_local] "$re "$http_referer" '
  5.               '"$ http_user_agent" $http_x_forwarded_for';
  6.    access_log  /opt/nginx/logs/65.log  65;
  7. }

  8. ……
注意事項:
1.必須添加:fastcgi_intercept_errors on; 如果這個選項沒有設置,即使創建了404.html和配置了error_page也沒有效果。
fastcgi_intercept_errors 語法: fastcgi_intercept_errors on|off 預設: fastcgi_intercept_errors off 新增位置: http, server, location 預設情況下,nginx不支援自訂404錯誤頁面,只有這個指令被設定為on,ngin錯誤才支援將404x定向。這裡要注意的是,並不是說設定了 fastcgi_intercept_errors on,nginx就會將404錯誤重新導向。在nginx中404錯誤重定向生效的前提是設定了fastcgi_intercept_errors on,並且正確的設定了error_page這個選項(包括語法和對應的404頁面)
2.不要出於省事或提高首頁權重的目的將首頁指定為404錯誤頁面,也不要用其它方法跳到首頁。
3.自訂的404頁必須大於512位元組,否則可能會出現IE預設的404頁。例如,假設自訂了404.html,大小只有11個位元組(內容 為:404錯誤)。如下兩個不存在的地址去訪問:
問一個問題,創建的404頁面放在哪裡呢? 我還沒去嘗試
@5169.info 放在哪裡都可以,注意改下這行配置就可以了 error_page 404 = /404.html;

@5169.info
放在哪裡都可以,注意改下這行配置就可以了
error_page 404 = /404.html;

也就是說,每個子站都複製一份404文件,可不可以這樣
error_page 404 = ../404.html;
只做一套 404放在htdocs下面

本文目前尚無任何 trackbacks 和 pingbacks.


注意

: 評論者允許使用

'@user:''@user:'的方式將自己的評論通知另外評論者。 例如, ABC是本文的評論者之一,則使用'@ABC
不包括單引號)將會自動將您的評論發送給ABC。 user必須與評論者名稱相符,區分大小 寫

NGINX 設定404錯誤頁面轉向start.jpg
來源:php.cn
本網站聲明
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn
熱門教學
更多>
最新下載
更多>
網站特效
網站源碼
網站素材
前端模板
關於我們 免責聲明 Sitemap
PHP中文網:公益線上PHP培訓,幫助PHP學習者快速成長!