Ayuda de reescritura de URL de htaccess
Pregunta
Tengo la siguiente URL de reescritura:
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
# Rewrite all other URLs
RewriteRule ^(.*)$ index.php?page=$1 [PT,L]
Ahora quiero agregar una excepción, que si la URL es algo así como mysite.com/abc, debería ignorarla y todas las cosas dentro de ella también. mysite.com/abc/dfgs también debería excluirse de esta reescritura.
¿Cómo puedo lograr esto?
Solución
Si / abc es un directorio existente, puede colocar otro archivo .htaccess allí con
RewriteEngine Off
Si realmente es solo una cadena que no desea reescribir (ya sea que exista o no)
RewriteCond %{REQUEST_URI} !^/abc
no se reescribirá si la ruta solicitada comienza con " / abc "
Para probar las reglas de reescritura sin desordenar el sitio para los navegadores regulares (no es que deba editar en un entorno en vivo, por supuesto, esto es puramente hipotético :-)), he encontrado lo siguiente muy útil:
RewriteCond %{REMOTE_ADDR} 12.34.56.78 # <-- where that's your IP address
Otros consejos
Esto debería evitar reescribir si el URI contiene abc. Esto puede o no ser exactamente lo que quieres. Si no es así, edite su pregunta.
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
#Rewrite ONLY if the REQUEST does NOT contain abc
RewriteCond %{REQUEST_URI} !abc
# Rewrite all other URLs
RewriteRule ^(.*)$ index.php?page=$1 [PT,L]