¿Es posible hacer este tipo de reescritura de URL?
Url de solicitud: https://image.domain.com/listing/1_10_iP2LROSEafC01584630756.jpg Reescribir a: https://image.domain.com/images/i/P/2/L/iP2LROSEafC01584630756.jpg
Si /images/i/P/2/L/iP2LROSEafC01584630756.jpg existe en el servidor, se sirve, si no, la consulta se redirige al archivo php /make_image.php
¡Gracias!
Url de solicitud: https://image.domain.com/listing/1_10_iP2LROSEafC01584630756.jpg Reescribir a: https://image.domain.com/images/i/P/2/L/iP2LROSEafC01584630756.jpg
Si te refieres a una redirección externa, esto se logra mediante la directiva de rewrite . Coloque la declaración en el bloque del server , o dentro de un bloque de location que maneje este tipo de solicitudes (es decir, URI que comienzan con /listing/ y/o terminan con .jpg ).
Su pregunta no indica qué significa 1_10_ , pero supongamos que desea que se ignoren los dos números arbitrarios.
Por ejemplo:
rewrite ^/listing/\d+_\d+_(.)(.)(.)(.)(.*)$ /images/$1/$2/$3/$4/$5 permanent;Vea este documento para más detalles.
Si /images/i/P/2/L/iP2LROSEafC01584630756.jpg existe en el servidor, se sirve, si no, la consulta se redirige al archivo php /make_image.php
Esto se logra utilizando una instrucción try_files dentro de un bloque de location que procesa solicitudes de URI que comienzan con /images/ .
Por ejemplo:
location /images/ { try_files $uri /make_image.php; }Vea este documento para más detalles.