redirectmatch examples conf another apache mod-rewrite alias

examples - ¿Cómo usar apache mod_rewrite y alias al mismo tiempo?



redirect conf apache (2)

El [L] significa último.

Lo que realmente necesita usar también es el indicador [PT] para indicar que la ruta resultante de su regla de reescritura se debe pasar al siguiente controlador, que en su caso es la directiva de alias.

Como la etiqueta [PT] también implica la etiqueta [L], ya no necesita [L] también.

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:

filepath/writable/images/00/00/23/65/filename-236581.jpg

(donde webroot es filepath / 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 inodes dentro de un directorio.

Quiero poder acceder a estos desde el servidor web front-end, así:

http://(server)/filename-236581.jpg

Donde nombre de archivo es una cadena seo-optimizada, 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, hasta llegar a:

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"

Quitar la [L] no hace diferencia.


Eso [L] que tienes después de RewriteRule significa "Último"

Para ser sincero, creí que esto solo significaba que se ignorarían más líneas de RewriteRule, pero podría valer la pena echarle un vistazo.