rewriterule redireccionar mod_rewrite htaccess enmascarar ejemplos ejemplo dominio descargar con carpeta .htaccess redirect front-controller

.htaccess - mod_rewrite - redireccionar dominio htaccess



¿Cómo redirigir todas las solicitudes a un archivo, excepto las imágenes que usan Apache? (3)

Puedes usar algo como esto para detener la reescritura de imágenes

RewriteRule /.(jpg|png)$ - [L]

Esta regla dice "si el archivo solicitado finaliza con un punto seguido de" jpg "o" png ", no lo reescriba.

El carácter $ solo marca "el final de la cadena / nombre de archivo", el - dice "no reescribir la URL si esta regla coincide", y la [L] significa "no procesar más reglas si esta coincide.

Agregaré que la forma habitual de lidiar con este tipo de cosas es simplemente aplicar una declaración general de "si este archivo existe, simplemente sirva el archivo directamente, pero cualquier cosa que no exista será procesada por PHP". Ese tipo de regla se ve así:

RewriteCond %{REQUEST_FILENAME} !-f RewriteCond %{REQUEST_FILENAME} !-d RewriteRule ^(.*)$ index.php?request=$1 [L,QSA]

Esto dice "si la solicitud no es para un archivo o directorio que existe, pase la solicitud a index.php con la ruta original pasada como un parámetro de cadena de consulta llamado ''solicitud'', agregando cualquier otro parámetro de cadena de consulta a la nueva solicitud. "

Tengo un archivo .htaccess con los siguientes contenidos:

Options +FollowSymLinks +ExecCGI <IfModule mod_rewrite.c> RewriteEngine On RewriteRule ^(.*)$ entryPoint.php [QSA] </IfModule>

Con esto, quiero que todas las solicitudes se redirijan al archivo entryPoint.php para que pueda examinarlas:

  • Si no hay extensión, debe haber un módulo.
  • Si hay un .php, es un hacking.
  • Si es un .png, entonces es una llamada "segura".

    En el caso de las imágenes, solía generar encabezados y file_get_contents() su contenido. Me di cuenta de que es un poco más lento que dejar una lectura directa .

Mi pregunta es:

¿Cómo evitar que este .htaccess llame a entryPoint.php si hay referencias para las imágenes?

Comentarios adicionales sobre el código que ya tengo es muy apreciado!


Según tengo entendido, usted desea procesar todas las imágenes que no sean imágenes que lanzó su archivo php. ¿Derecha?

Si es así, entonces esto es lo que necesitas:

Options +FollowSymLinks +ExecCGI <IfModule mod_rewrite.c> RewriteEngine On RewriteCond %{REQUEST_URI} !(/.png|/.jpg|/.gif|/.jpeg|/.bmp)$ RewriteRule (.*) entryPoint.php [QSA] </IfModule>

¡Recuerda agregar para borrar cualquier extensión de imagen que desees! Si entendí mal, ¡por favor, dime que corrija mi respuesta!


RewriteCond %{REQUEST_FILENAME} !/.(png|jpg|gif)$

Ponga esta línea justo antes de su RewriteRule