Question

J'ai l'URL de réécriture suivante:

RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d

# Rewrite all other URLs 
RewriteRule ^(.*)$ index.php?page=$1 [PT,L]

Je souhaite maintenant ajouter une exception, à savoir que si l'URL ressemble à mysite.com/abc, elle doit également l'ignorer. mysite.com/abc/dfgs devrait également être exclu de cette réécriture.

Comment puis-je accomplir cela?

Était-ce utile?

La solution

Si / abc est un répertoire existant, vous pouvez y insérer un autre fichier .htaccess avec

RewriteEngine Off  

S'il ne s'agit vraiment que d'une chaîne que vous ne souhaitez pas réécrire (qu'elle existe ou non)

RewriteCond %{REQUEST_URI} !^/abc  

ne réécrira pas si le chemin demandé commence par & "; / abc &";

.

Pour tester les règles de réécriture sans gâcher le site pour les navigateurs classiques (non que vous deviez éditer dans un environnement réel, bien entendu, ceci est purement hypothétique :-)), les éléments suivants ont été très utiles:

RewriteCond %{REMOTE_ADDR} 12.34.56.78 # <-- where that's your IP address  

Autres conseils

Ceci devrait éviter la réécriture si l’URI contient abc. Cela peut être ou ne pas être exactement ce que vous voulez. Si ce n'est pas le cas, modifiez votre question.

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]
Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top