2010-10-18 6 views
0

J'ai créé un contrôleur frontal pour mon site Web. Je souhaite transmettre toutes les demandes au site Web via ce contrôleur frontal. Maintenant, j'ai aussi d'autres logiciels installés dans la racine du Web et maintenant j'ajoute ces dossiers à ignorer via .htaccess afin que leurs demandes ne vont pas non plus au contrôleur frontal. Je fais quelque chose comme ci-dessous,Réécrivez uniquement des URL spécifiques via .htaccess

 

    RewriteEngine On 
    RewriteCond $1 !^(folder1|folder2|folder3|robots\.txt) 
    RewriteRule ^(.*)$ index.php [QSA,L] 

Cela fonctionne pour l'instant, mais est-il possible d'ajouter des demandes que pour le domaine spécifique ou un dossier pour obtenir passé par index.php Ex: www.mysite.com ou www .mysite.com/dossier4 ou mysite.com.

De cette façon, je n'ai pas besoin d'ajouter des dossiers à ignorer chaque fois qu'un nouveau est créé.

Merci.

EDIT: Je vais essayer de le rendre plus simple. Je veux que toutes les demandes pour un dossier spécifique et un site principal passent par un contrôleur frontal. Autre que ceux-ci, toutes les demandes doivent être traitées comme d'habitude

Répondre

0

Vous pouvez utiliser ces conditions plutôt que d'exclure toute demande qui peut être mis en correspondance sur les fichiers ou les répertoires existants:

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

Vous pouvez utiliser la variable SERVER_NAME:

RewriteCond %{SERVER_NAME} ! ^(www\.)?mysite\.com$ 
+0

Ok, ce que je veux, c'est si la requête est http://www.monsite.com, alors la requête devrait passer par le contrôleur index.php. Si la requête est http://www.monsite.com/folder1, elle ne doit pas passer par un contrôleur. Le nom du serveur sera le même, je veux juste utiliser le contrôleur pour seulement quelques dossiers et le site principal pas sur tous. – Harsha