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?

¿Fue útil?

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]
Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top