La reescritura tiene dos partes. El primero especifica que si el nombre de archivo solicitado es un archivo normal con un tamaño mayor que 0 (-s
), un enlace simbólico (-l
) o un directorio (-d
), reescriba en ninguna parte, por ejemplo. no tomar ninguna medida. [NC,L]
significa que la regla no es sensible a mayúsculas y minúsculas y la última regla que coinciden con estas condiciones.
Todas las demás solicitudes se envían al /vote/public/index.php
.
El propósito de esta reescritura es que se puede obtener un archivo real y existente del servidor sin interferencias. Sin la primera regla, cada solicitud de archivo (archivos css y js, imágenes, etc.) iría al index.php
, lo que ensuciaría bastante las cosas.
Normalmente, esto está escrito en una declaración. Puede negar las condiciones, y luego los [OR]
statemens puede ser llevado a cabo también:
RewriteEngine On
RewriteCond %{REQUEST_FILENAME} !-s
RewriteCond %{REQUEST_FILENAME} !-l
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule ^.*$ /vote/public/index.php [NC,L]
Esto es equivalente a la declaración original.
@Tatu Ulmanen: ¿puedes explicar qué significa 'RewriteCond% {REQUEST_FILENAME} -f'? ¿es simplemente el "tamaño" en el que difieren las opciones '-s' y' -f'? Y también, ¿cuáles serían los archivos regulares (no binarios?)? –