在大并发量网站中经常需要使用到静态化技术,但是有时候被静态化的页面可能会因为某种原因被删除了,当用户使用静态页面的url地址来访问时,就会出现404错误。
因此我们有这样的想法,当静态页面存在的时候直接返回静态页面,如果不存在的时候指向某个地址生成静态页。
这种想法是可以实现的,下面介绍一下使用nginx的url rewrite技术来实现的配置方法
if (!-e $request_filename){
rewrite ^/([a-z-A-Z]+)/([a-z-A-Z]+)/?(.*)$ /index.php?controller=$1&$2&$3 permanent
;
}
上面的例子匹配了如下的字符串 /abc/decf/abcd /index.php?controller=abc&decf&abcd
当用户访问/abc/decf/abcd所表示的页面不存在时,系统会重定向到/index.php?controller=abc&decf&abcd
是不是很方便。
nginx很好很强大。