免费注册 查看新帖 |

Chinaunix

  平台 论坛 博客 文库
最近访问板块 发新帖
查看: 4769 | 回复: 5
打印 上一主题 下一主题

请教nginx rewrite的规则为什么没有生效? [复制链接]

论坛徽章:
0
跳转到指定楼层
1 [收藏(0)] [报告]
发表于 2010-04-06 22:41 |只看该作者 |倒序浏览
配置了一个nginx的站点,需求是这样的:
1.  访问/images/*时,从站点根目录下的/view/images/*获取。
2.  访问/css/*时,从站点根目录下的/view/css/*获取。
3.  其他文件,均从/control/*获取。

下面是配置,但是发现无论是images还是css,都执行了这条rewrite规则: rewrite ^/(?!control/)(.*) /control/$1 last;
上面的两条根本没有发生作用,不知道是怎么回事?
  1. server
  2. {
  3.        listen       80;
  4.        server_name www.abcd.com;
  5.        root /www/abcd;
  6.        index index.html index.php;
  7.       
  8.        rewrite ^/images/(.*)$ /view/images/$1 last;
  9.        rewrite ^/css/(.*)$ /view/css/$1 last;
  10.        rewrite ^/(?!control/)(.*) /control/$1 last;

  11.        error_page 404   /control/index.php;
  12.        location ~ .*\.php$ {
  13.        fastcgi_pass   127.0.0.1:9000;
  14.        fastcgi_index  index.php;
  15.        fastcgi_param  SCRIPT_FILENAME $document_root$fastcgi_script_name;
  16.        include  fastcgi_params;
  17.        }
  18. }
复制代码
如下是nginx 的响应错误日志:
2010/04/07 06:05:39 [error] 12949#0: *11526 open() "/www/abcd/control/view/css/style.css" failed (2: No such file or directory), client: 111.12.153.106, server: abcd.com, request: "GET /css/style.css HTTP/1.1", host: "abcd.com", referrer: "http://abcd.com/login.php"
2010/04/07 06:05:39 [error] 12949#0: *11522 open() "/www/abcd/control/view/images/logo.gif" failed (2: No such file or directory), client: 111.12.153.106, server: abcd.com, request: "GET /images/logo.gif HTTP/1.1", host: "abcd.com", referrer: "http://abcd.com/login.php"

论坛徽章:
0
2 [报告]
发表于 2010-04-07 13:44 |只看该作者
哪位高手能指点指点?

论坛徽章:
0
3 [报告]
发表于 2010-04-07 21:58 |只看该作者
顶一下,帮忙指点一下。谢谢!

论坛徽章:
0
4 [报告]
发表于 2010-04-10 22:26 |只看该作者
提示: 作者被禁止或删除 内容自动屏蔽

论坛徽章:
0
5 [报告]
发表于 2010-04-14 12:14 |只看该作者
() "/www/abcd/control/view/images/logo.gif" failed (2: No such file or directory), client:



没 ...
mitmax 发表于 2010-04-10 22:26



    这应该就是楼主要问的问题
参考:
http://wiki.nginx.org/NginxChsHttpRewriteModule
搞清楚你那3句关于rewrite的语法用途
参考这个连接中基于目录部分的配置

论坛徽章:
0
6 [报告]
发表于 2010-04-26 16:31 |只看该作者
rewrite ^/(?!control/)(.*) /control/$1 last;这条有问题,!如何匹配control,看看正则规则
您需要登录后才可以回帖 登录 | 注册

本版积分规则 发表回复

  

北京盛拓优讯信息技术有限公司. 版权所有 京ICP备16024965号-6 北京市公安局海淀分局网监中心备案编号:11010802020122 niuxiaotong@pcpop.com 17352615567
未成年举报专区
中国互联网协会会员  联系我们:huangweiwei@itpub.net
感谢所有关心和支持过ChinaUnix的朋友们 转载本站内容请注明原作者名及出处

清除 Cookies - ChinaUnix - Archiver - WAP - TOP