在nginx中重写没有哈希的url

时间:2017-03-17 20:02:03

标签: nginx url-rewriting

我正在尝试使用Nginx重写静态文件路径来去除为缓存清除添加的哈希。哈希值总是10个符号长。例如,

/min/3rd.party.min.1234567899.js必须成为/min/3rd.party.min.js

我试过这个,但它不起作用(在configtest中失败)并且看起来也很复杂。

location /min/ {
    root /opt/app/public;
    rewrite ^.*(?<=(.))[a-z0-9]{10}[.](?=(js|css))[js|css]$ $1$3;
} 

1 个答案:

答案 0 :(得分:1)

我不知道你是如何达到你的正则表达式模式的,但以下似乎有效:

rewrite "^(.*)\.\w{10}\.(js|css)$" $1.$2 break;

任何包含大括号的模式都必须放在引号内。使用break后缀处理同一位置内的重写URI。有关详细信息,请参阅this document;有关正则表达式的信息,请参阅this useful resource