rewrite scheme for url redirect

sevy nginx-forum at nginx.us
Thu Jan 27 00:11:30 MSK 2011


I'm going crazy with this since I can't get it working in any way...

I have a subdomain on a server, let's call it images.site1.com,
dedicated to serve images. Due to some bandwidth limitation i got a more
capable server so the webpages will remain on site1.com but the images
will be moved to images.site2.com

Since I had to change the names of images folders on the new server now
I need to rewrite the urls in order to fit my needs. Only the webserver
on site1.com runs NginX, so i need to do rewrite the original ruls
following a regular expression (regex) and do something like:

http://images.site1.com/oldfolderjpg/123456_1.jpg
--rewrite-->
http://images.site2.com/newfolderjpg/12/34/new_images/123456/123456_image_1_large.jpg

- The first and most logic rewrite scheme I tought about is:

rewrite ^/oldfolder/([0-9][0-9])([0-9][0-9])([0-9][0-9])_([0-9]).jpg$
http://images.site2.com/newfolder/$1/$2/new_images/$1$2$3/$1$2$3_image_$4_large.jpg
permanent;But it didn't work (I really don't know why)

- The second way I tried out is:

location /oldfolder/([0-9][0-9])([0-9][0-9])([0-9][0-9])_([0-9]).jpg$ {
    rewrite ^
http://images.site2.com/newfolder/$1/$2/new_images/$1$2$3/$1$2$3_image_$4_large.jpg
permanent;
 }And it didn't work either...

I tried this config too:

location ~ oldfolder/ {
  rewrite ^([0-9][0-9])([0-9][0-9])([0-9][0-9])_([0-9]).jpg$
http://images.site2.com/newfolder/$1/$2/new_images/$1$2$3/$1$2$3_image_$4_large.jpg
permanent;
}But with no luck...

After that I tried an old config cheme i used for another site (on the
same box) for a cdn config:

location ~ /oldfolder/([0-9][0-9])([0-9][0-9])([0-9][0-9])_([0-9]).jpg
{
  rewrite ^/(.*)$
$scheme://images.site2.com/newfolder/$1/$2/new_images/$1$2$3/$1$2$3_image_$4_large.jpg;
}I've been triying in several ways but nginx keeps ignoring my rewrite
scheme redirecting to my default error image located at
images.site1.com/error.jpg

Can anyone help me with this?

I'll write down my subdomain server config for your facility:

## images.site1.com ##

    server {
        listen       80;
        server_name  images.site1.com;
        error_page  404  http://images.site1.com/error.jpg;
        root   /home/sites/site1.com/images;
        }It's a very basic server config, that's why I can't understand
why nginx doesn't rewrite the images following such scheme...

Posted at Nginx Forum: http://forum.nginx.org/read.php?2,169853,169853#msg-169853




More information about the nginx mailing list