码迷,mamicode.com
首页 > 其他好文 > 详细

nginx 判断访问文件或目录不存在rewrite

时间:2017-01-16 14:04:10      阅读:5353      评论:0      收藏:0      [点我收藏+]

标签:括号   unknown   forum   style   roo   att   xca   jpg   filename   

文件及目录匹配,其中:
* -f和!-f用来判断是否存在文件
* -d和!-d用来判断是否存在目录
* -e和!-e用来判断是否存在文件或目录
* -x和!-x用来判断文件是否可执行

样例 : 判断访问的图片是否存在,不存在跳转到另外的域名

   location ~* ^.+.(jpg|jpeg|gif|css|png|js|ico|thumb) {
       root    /data/wwwroot/bbs.xxx.com;
       expires 10d;
       if (!-e $request_filename) {
           rewrite ^/data/attachment/forum/(.*)$ http://img.xxx.com/forum/$1 permanent;
       }
   }

 

 

这里会遇到一个问题:

  nginx中重写rewrite的语法错误[emerg] unknown directive “if($host!=”

Nginx语法检测特别严格,if和后面括号以及变量等号这些元素都要有空格,所以正确的写法是:
 if ( $host != www.0xcafebaby.com ){  
  rewrite ^(.*)$ http://www.0xcafebaby.com$1 permanent;  
 }  
用^代替空格看起来更清晰:
if^(^$host^!=^www.0xcafebaby.com^){
反正多打几个空格就是了,所以nginx中的中文配置文件解释可参考:Nginx配置文件中文注释详解  如果想了解更多nginx的rewrite配置,可参考:nginx rewrite 的 参数大全

nginx 判断访问文件或目录不存在rewrite

标签:括号   unknown   forum   style   roo   att   xca   jpg   filename   

原文地址:http://www.cnblogs.com/0xcafebaby/p/6289234.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!