NGINX - 使用正则表达式重写规则

时间:2016-03-09 10:21:35

标签: regex nginx url-rewriting rewrite

我有一个网址。 www.something.com/cdn/util/sacle/180/180/......我需要将其重写为www.something.com/cdn/_util/scale.php/180/180....我如何在nginx中执行此操作?我的解决方案现在:

location /cdn/ {
  rewrite ^/util/scale(.*)$ /_util/scale.php/$1 break;
}

但对我来说这不是一个好的解决方案,因为我还有其他一些重写规则:

location /serve {
rewrite ^/serve(.*)$ /_util/serve.php/$1 break;
}
location /upload {
rewrite ^/upload(.*)$ /_util/upload.php/$1 break;
}
location /delete {
rewrite ^/delete(.*)$ /_util/delete.php/$1 break;
}
location /copy {
rewrite ^/copy(.*)$ /_util/copy.php/$1 break;
}
location /move {
rewrite ^/move(.*)$ /_util/move.php/$1 break;
}
location /util {
rewrite ^/util/placeholder(.*)$ /_util/placeholder.php/$1 break;
rewrite ^/util/thumb(.*)$ /_util/thumb.php/$1 break;
rewrite ^/util/scale(.*)$ /_util/scale.php/$1 break;
rewrite ^/util/marker(.*)$ /_util/marker.php/$1 break;
}

我认为这也有可能在一条线上。而php从网址获取参数。如果我写这样的网址,那现在正在工作:

http://cdn-staging.something.com/util/scale/180/180/dev-employer-images/iamge.jpg

创造这个:

http://cdn-staging.something.com/_util/scale.php/180/180/dev-employer-images/iamge.jpg

但是它属于Apache,我需要将其发送到nginx。

0 个答案:

没有答案