Encontré estas reglas de reescritura en el .htaccess de mi sitio de WordPress:
RewriteEngine On
RewriteRule ^index\.php$ - [L]
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule . /index.php [L]
Sé que esto básicamente se refiere todo a index.php. pero como funciona? ¿Qué regla hace qué?
Encontré alguna referencia aquí: http://httpd.apache.org/docs/current/mod/mod_rewrite.html
RewriteEngine On
habilita el módulo de reescritura.
RewriteRule ^index\.php$ - [L]
se asegura de que si index.php
se llama, no se ejecuta ninguna otra regla. los -
es asegurarse de que no se produzca ninguna reescritura, y el [L]
bandera indica que no se deben ejecutar otras reglas.
RewriteCond %{REQUEST_FILENAME} !-f
agrega una condición a la siguiente regla de reescritura. Esta condición dice que el nombre de archivo solicitado es no (!
) un archivo existente.
RewriteCond %{REQUEST_FILENAME} !-d
es lo mismo, pero para un directorio existente.
RewriteRule . /index.php [L]
dice que todo (.
) debe reescribirse como /index.php
y que esta es la última regla a ejecutar ([L]
).
Tuve la misma pregunta (stackoverflow.com/q/35303598/2983568) y encontré una explicación detallada aquí: glennmessersmith.com/pages/wphtaccess.html
– mandarina malvada
10 de febrero de 2016 a las 8:04