Обновление 2:
Хорошо, поэтому фактические файлы находятся в /images/size/image.jpg
, а не /m/
, /m/
- это просто каталог psuedo.
Учитывая это, я думаю, это должно быть так просто:
server {
server_name i.domain.com;
access_log /var/log/nginx/i.domain.com.access.log;
error_log /var/log/nginx/i.domain.com.error.log;
root /var/www/domain.com/html/images;
location / {
rewrite /s([A-Za-z0-9.]+)? /small/$1 break;
rewrite /o([A-Za-z0-9.]+)? /orig/$1 break;
rewrite /([A-Za-z0-9.]+)? /medium/$1 break;
#change this to a 404 img file .jpg
try_files $uri $uri/ /notfound.jpg;
}
location = / {
rewrite ^ http://domain.com permanent;
}
}
Но не уверен на 100%.Дайте этому шанс и посмотрите.Я переместил попытку ниже, так как она сначала пыталась найти файлы, которых не существовало, а затем выдавала ошибку.
ОБНОВЛЕНИЕ
СВы пытаетесь просто передать его в сценарий, нам нужно захватить это и передать в сценарий.Я изменил корень, так как вы делаете каталог изображений «psuedo», и нам потребуется доступ к сценарию обработки изображений.
Хорошо, поскольку в середине нет сценария PHP (неправильно прочитанос моей стороны) тогда ниже следует делать то, что вы хотите.
#setup subdomain i.domain.com
server {
server_name i.domain.com;
access_log /var/log/nginx/i.domain.com.access.log;
error_log /var/log/nginx/i.domain.com.error.log;
root /var/www/domain.com/html;
location ~* \.jpg { # add more extensions if you need to
#change this to a 404 img file .jpg
try_files $uri $uri/ /m/$uri /m/notfound.jpg;
#get the main part working first
#rewrite "/s([A-Za-z0-9.]+)?" /small/$1 break;
#rewrite "/o([A-Za-z0-9.]+)?" /orig/$1 break;
#rewrite "/([A-Za-z0-9.]+)?" /medium/$1 break;
}
location = / {
rewrite ^ http://domain.com permanent;
}
}
Если это сработает, я не уверен, как сделать переписывание для малого / оригинала / носителя (поскольку я не уверен в необходимой логике), но, надеюсь, вы сможете заставить его работать.
В вашем домене conf вам просто нужно добавить местоположение для /m
location /m {
rewrite ^/m/(.*)$ http://i.domain.com/$1 permanent;
}
Если это будет сделано, до каких-либо мелких ошибок.