Nginx重写为包含文件夹

时间:2014-05-23 09:12:25

标签: nginx url-rewriting rewrite

我的重写规则有问题。它没有在重写路径中包含文件夹。例如:

/randomstring/app.js重写为/var/www/CDN/Dev/App/app.js

/randomstring/dashboard/app.js重写为/var/www/CDN/Dev/App/app.js,但应重写为/var/www/CDN/Dev/App/dashboard/app.js

我不明白为什么它不起作用。如果我没有弄错的话,(.*)会匹配除了点之外的所有内容,为什么它不包含dashboard/部分?

location ~* (css|js)$ {
    rewrite ^/([^/]*)/(.*).(css|js)$ /$2.$3 ;
    root /var/www/CDN/Dev/App;
}

2 个答案:

答案 0 :(得分:1)

location ~* \.(css|js)$ {
    rewrite ^/([^/]+)/(.+)\.(css|js)$ /$2.$3 ;
    root /var/www/CDN/Dev/App;
}

答案 1 :(得分:1)

我认为没有理由在这里使用重写。别名应该足够了

location ~* /[^/]+(/.+\.(css|js))$ {
    alias /var/www/CDN/Dev/App/$1;
}