2010-04-06 4 views
1

Je prends en charge un site Web pour un client qui fonctionne sur un CMS personnalisé (que je n'ai pas écrit). Je ne fais pas de bêtises avec les fichiers .htaccess parce que je fais beaucoup d'hébergement sur IIS, ou j'ai utilisé WordPress comme CMS et je n'ai pas à m'inquiéter de jouer avec le fichier .htaccess. Voici le contenu du fichier:RewriteCond et RewriteRule newbie

RewriteEngine on 
RewriteCond %{REQUEST_FILENAME} !-f 
RewriteRule ^(.*)$ framework.php?%{QUERY_STRING}&resource=$1& [L] 

Je reçois ce qu'il fait (envoyer toutes les demandes dans le fichier framework.php). Le client veut un blog WordPress ajouté à son site. Je le place dans un dossier/blog /. Le problème est qu'en raison des règles et des conditions de réécriture dans le fichier .htaccess chaque fois que j'essaie d'aller/blog/l'autre CMS panique parce qu'il n'aime pas que j'essaie d'y aller. Ma question est comment puis-je écrire une règle/cond qui indique à apache d'envoyer toutes les demandes faites au dossier/blog/vers le dossier/blog /, mais garde toutes les autres requêtes passées à travers le fichier framework.php comme c'est le cas maintenant? Toute aide est la bienvenue, merci!

+1

Btw, explicite% {QUERY_STRING} dans la partie droite RewriteRule doit être remplacé par un indicateur QSA. – wRAR

Répondre

1

Vous devriez être en mesure de dire le principal fichier .htaccess pour ignorer les liens /blog en ajoutant un RewriteCond à la règle principale:

RewriteEngine on 
RewriteCond %{REQUEST_FILENAME} !-f 
RewriteCond %{REQUEST_URI} !^/blog(/?) 
RewriteRule ^(.*)$ framework.php?%{QUERY_STRING}&resource=$1& [L] 

Un lien /blog ne sera pas envoyé à framework.php, et devrait servir à partir du répertoire/blog normalement. Le fichier Wordpress .htaccess dans ce répertoire sera invoqué normalement et devrait être capable de gérer les liens Wordpress à partir de là.

+0

Merci zombat, ça a marché! – user64718

+0

Aucun problème :) [15 charge limite de carbone] – zombat