http - sintagma - reescritura del trabajo
¿Qué significa esta regla de reescritura? (3)
Esas son principalmente reescrituras estándar que verifican si el archivo solicitado (o directorio o enlace simbólico) existe en el disco, en cuyo caso el archivo / directorio / etc. debería ser usado.
Todas las demás coincidencias deben ir a /votes/public/index.php
Estoy instalando phpancake, hay una carpeta allí shema como esta
application/
install/
library/
public/
sql_schema/
install.html
install.php
¿Qué significa esta regla?
RewriteEngine On
RewriteCond %{REQUEST_FILENAME} -s [OR]
RewriteCond %{REQUEST_FILENAME} -l [OR]
RewriteCond %{REQUEST_FILENAME} -d
RewriteRule ^.*$ - [NC,L]
RewriteRule ^.*$ /vote/public/index.php [NC,L]
La primera regla pasará por todas las solicitudes que se pueden asignar a un archivo normal con un tamaño mayor que cero ( -s
), un enlace simbólico ( -l
) o un directorio ( -d
). Cada otra solicitud es captada por la segunda regla y reescrita a /vote/public/index.php .
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 ej. no tomar ninguna medida. [NC,L]
significa que la regla no es sensible a mayúsculas y la última regla que coinciden con estas condiciones.
Todas las demás solicitudes se envían a /vote/public/index.php
.
El objetivo de esta reescritura es que se puede obtener un archivo existente y existente del servidor sin interferencias. Sin la primera regla, cada solicitud de archivo (archivos css y js, imágenes, etc.) iría a index.php
lo que ensuciaría bastante las cosas.
Por lo general, esto está escrito en una declaración, sin embargo. Puedes negar las condiciones, y luego los [OR]
statemens también pueden sacarse:
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.