Nginx相对于绝对重写规则的URL?

时间:2012-09-12 22:13:32

标签: nginx rewrite

给出以下配置:

server {

    listen 80;
    server_name site.com;

    location /proxy {
            proxy_pass   http://newsite.com/;
   }
 }

site.com上托管的页面对所有静态文件使用相对路径(/main.css),因此当我收到代理页面时,浏览器会查询路径错误的静态文件:

即。 :http://site.com/main.css

如何将请求的静态文件放在原始位置(http://newsite.com/main.css)?

1 个答案:

答案 0 :(得分:4)

您应该可以在server部分使用rewrite rule,如下所示(未经测试):

server_name site.com;
rewrite ^/([^/]+\.css)$ http://newsite.com/$1;

这应该将site.com顶级目录中对.css文件的所有请求重定向到http://newsite.com/。如果需要包含其他静态文件(图像,脚本等),请根据需要调整正则表达式或添加重写规则。