2010-01-22 7 views
0

J'ai deux fichiers .htaccess que j'ai besoin de combiner en un.Si aucun fichier, réécrire l'URL

Le premier fait un simple dissolvant d'extension de fichier.

La seconde réécrit toutes les demandes d'accès à une application tierce, en gardant notre URL.

Ce dont j'ai besoin, c'est de faire en sorte que les règles soient assez intelligentes pour ne pas regarder le second serveur si le fichier existe sur le premier.

Règle1:

RewriteEngine on 
RewriteCond %{REQUEST_FILENAME} !-d 
RewriteCond %{REQUEST_FILENAME}\.php -f 
RewriteRule ^(.*)$ $1.php 

Règle 2:

Options +FollowSymLinks +Indexes 
RewriteEngine on 
RewriteRule ^(.*)$ http://third.party.com/$1 [P] 
# RewriteCond %{THE_REQUEST}([^?\ ]+) 
# RewriteRule ^.*$ index.php/%1 

Je suis loin d'être un assistant .htaccess, donc je suis toutes les oreilles pour des suggestions.

Répondre

0

Vous pouvez ajouter l'indicateur L pour arrêter la réécriture à une règle donnée. Par exemple:

RewriteEngine on 
RewriteCond %{REQUEST_FILENAME} !-d 
RewriteCond %{REQUEST_FILENAME}\.php -f 
RewriteRule ^(.*)$ $1.php [L] 

RewriteRule ^(.*)$ http://third.party.com/$1 [P] 
# RewriteCond %{THE_REQUEST}([^?\ ]+) 
# RewriteRule ^.*$ index.php/%1 

Voir the mod_rewrite docs (recherche "Arrêter le processus de réécriture").

0

Alors voulez-vous qu'une règle fonctionne pour un site et une autre pour l'autre? Si oui, vous pouvez utiliser les directives RewriteCond% {HTTP_HOST} pour limiter leur portée.

Questions connexes