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
可以看到还是使用的浏览器缓存
在手动清理了浏览器缓存后才能不被重定向