天天看點

httpd配置Rewrite 301 302

  在系統做一些大的、比較耗時的釋出的時候,往往需要停服很長時間,這期間有使用者通路的話,就需要展示一個更新說明的頁面,這個頁面放在反向代理伺服器中;反向代理伺服器如httpd有請求URL重寫子產品,通過它可以實作這種需求。

  How?

  1.引入rewrite子產品

  在httpd.conf中添加

  

httpd配置Rewrite 301 302

  2.配置重寫規則

httpd配置Rewrite 301 302

  3.注意永久重定向301和臨時重定向302

  配置後,非index.html的請求會被重定向到index.html,狀态碼是302(臨時重定向);如果配置永久重定向[R=permanent,L],則狀态碼會是301,這會導緻在釋出完成并關閉了重定向後,如果不清理浏覽器緩存,将會一直重定向到index.html,因為狀态碼是301,浏覽器會直接使用本地緩存而不再請求遠端伺服器。

  4.301和302測試

  下面來測試一下,添加了2個html頁面

httpd配置Rewrite 301 302
httpd配置Rewrite 301 302

  1) 配置為臨時重定向,非index.html請求都重定向到index.html

httpd配置Rewrite 301 302

    2)重新開機httpd并通路test.html

httpd配置Rewrite 301 302

   可以看到以及被重定向到index.html了,狀态碼是302

httpd配置Rewrite 301 302

  3)關閉重定向配置,然後重新開機伺服器并再次通路test.html

httpd配置Rewrite 301 302

   不再被重定向

  4)配置為永久重定向

httpd配置Rewrite 301 302

  5)重新開機并通路,狀态碼是301

httpd配置Rewrite 301 302

  6)關閉重定向配置,重新開機伺服器,通路test.html

  可以看到還是使用的浏覽器緩存

httpd配置Rewrite 301 302

  在手動清理了浏覽器緩存後才能不被重定向

httpd配置Rewrite 301 302