2010-07-05 11 views
0

J'ai un problème lors de l'ajout d'une requête de réécriture PHP et de requêtes html par défaut à mon fichier .htaccess.Boucle récursive dans mon fichier .htaccess

L'idée est de définir des modèles pour le contenu de mon site, en spécifiant que le contenu d'un dossier utilise un modèle spécifique. Cela fonctionne bien pour le HTML, l'image et d'autres ressources; les demandes sont réécrites correctement dans le modèle. Mais je reçois une requête de réécriture de problème récursive à php-resources, car le template est aussi une ressource php ... peut-être assez logiquement.

Est-il possible de limiter le php-to-php à une seule réécriture? Ou ai-je besoin d'une autre approche?

Cette règle est mon problème:

RewriteRule ^(.*).(php$) /_templates/default.php?$1.$2 [NC,L] 

Ci-dessous mon .htaccess ...

... Merci

# Template rewrites: 
RewriteEngine on 
RewriteCond %{REQUEST_FILENAME} -f 
RewriteRule ^(subpages/.*) /_templates/present.php?$1 [NC,L] 
RewriteCond %{REQUEST_FILENAME} -f 
RewriteRule ^(.*).html$ /_templates/default.php?$1 [NC,L] 
RewriteRule ^(.*).(php$) /_templates/default.php?$1.$2 [NC,L] 

Répondre

0

Vous pouvez ajouter un RewriteCond comme ceci:

RewriteCond $1 !^_templates/ 
RewriteRule ^(.*).php$ /_templates/default.php?$1.php [NC,L,B] 

J'ajoute aussi ed l'indicateur B car vous utilisez la référence arrière dans la chaîne de requête.

+0

Merci Artefacto, le RewriteCond $ 1!^_ templates/peut le tour ... Cheers –

0

Vous pouvez ajouter une règle d'exclusion:

RewriteRule $ 0 [ploi]

$ 0 est la demande initiale et [L] signifie qu'il est la dernière règle cette demande va courir

Questions connexes