httpd配置Rewrite 301 302

  在系统做一些大的、比较耗时的发布的时候,往往需要停服很长时间,这期间有用户访问的话,就需要展示一个升级说明的页面,这个页面放在反向代理服务器中;反向代理服务器如httpd有请求URL重写模块,通过它可以实现这种需求。

  How?

  1.引入rewrite模块

  在httpd.conf中添加

  

 

 

  2.配置重写规则

  在httpd.conf中添加

  

 

 

  3.注意永久重定向301和临时重定向302

  配置后,非index.html的请求会被重定向到index.html,状态码是302(临时重定向);如果配置永久重定向[R=permanent,L],则状态码会是301,这会导致在发布完成并关闭了重定向后,如果不清理浏览器缓存,将会一直重定向到index.html,因为状态码是301,浏览器会直接使用本地缓存而不再请求远程服务器。

  4.301和302测试

  下面来测试一下,添加了2个html页面

  

 

 

  1) 配置为临时重定向,非index.html请求都重定向到index.html

  

 

    2)重启httpd并访问test.html

  

 

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

  

 

  3)关闭重定向配置,然后重启服务器并再次访问test.html

  

 

   不再被重定向

  

 

  4)配置为永久重定向

  

  5)重启并访问,状态码是301

  

  6)关闭重定向配置,重启服务器,访问test.html

  可以看到还是使用的浏览器缓存

  

 

  在手动清理了浏览器缓存后才能不被重定向

  

 

 

 

 

 

  

posted @ 2019-10-25 10:27  zhya_hopeful  阅读(807)  评论(0编辑  收藏  举报