Tengo un directorio fuera de la webroot que se utiliza para almacenar imágenes cargadas desde un sistema de administración separado. Las imágenes se almacenan en este formato:¿Cómo usar apache mod_rewrite y alias al mismo tiempo?
filepath/writable/images/00/00/23/65/filename-236581.jpg
(donde el Webroot es ruta de archivo/html)
... por ejemplo. Aquí, 236 es el ID de la imagen en la base de datos, y el sistema de archivos está dividido en directorios numerados para evitar que se usen más de 100 inodos dentro de un directorio.
Quiero ser capaz de acceder a estos desde el servidor web front-end, así:
http://(server)/filename-236581.jpg
Donde nombre de archivo es una cadena de SEO-optimizado, lo mismo que en el nombre del archivo real.
Puedo obtener mod-rewrite para reescribir la URL para que contenga los directorios adicionales numerados, y puedo obtener un alias para redirigir la solicitud al directorio de escritura/imágenes, pero no puedo hacer ambas cosas al mismo tiempo . Si pongo las directivas alias y mod_rewrite, ignora el alias y el registro de errores se queja de que no puede encontrar filepath/html/uploaded-images.
Esto es lo que tengo hasta ahora:
RewriteRule ^(.*)\/([^\/]*)-([0-9])\.(gif|jpg|jpeg|png)$ /uploaded-images/00/00/00/00/$2-$3.$4 [L,NC]
... y así sucesivamente, todo el camino hasta:
RewriteRule ^(.*)\/([^\/]*)-([0-9][0-9][0-9][0-9][0-9][0-9][0-9][0-9][0-9][0-9])\.(gif|jpg|jpeg|png)$ /uploaded-images/$3$4/$5$6/$7$8/$9$10/$2-$3$4$5$6$7$8$9$10$11$12.$13 [L,NC]
alias /uploaded-images "filepath/writable/images"
Extracción de la [L] no hace ninguna diferencia.