2009-05-26 9 views
1

J'ai un dossier home/admin. Dans ce dossier, il y a index.php. Lorsque j'accède à domain.com/admin/ ma règle mod_rewrite redirige mon index.php dans le dossier de départ. Je veux que mod_rewrite saute le dossier ou les dossiers existants, et cas particulier pour le dossier/admin /, qui contient le fichier index.php.Aide avec mod_rewrite

Ma règle de réécriture est:

<IfModule mod_rewrite.c> 
    RewriteEngine On 
    RewriteRule ^$ index.html [QSA] 
    RewriteRule ^([^.]+)$ $1.html [QSA] 
    RewriteCond %{REQUEST_FILENAME} !-f 
    RewriteRule ^(.*)$ index.php [QSA,L] 
</IfModule> 

Merci.

Répondre

3

Essayez de changer

RewriteCond %{REQUEST_FILENAME} !-f 

à

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

Cela va sauter des répertoires ainsi que les fichiers

Edit: Je pense qu'il est cette règle qui va mal (aussi bien):

RewriteRule ^([^.]+)$ $1.html [QSA] 

Essayez ceci à la place

RewriteRule (^|/)([^.]+)$ $2.html [QSA] 
+0

Il ne saute pas si je tape host/admin. J'en ai besoin pour sauter puisque j'ai index.php dans le dossier. – taras

+0

J'ai essayé RewriteCond% {REQUEST_FILENAME}! -d mais pas d'aide – taras

+0

Merci Greg, cela a fonctionné, mais j'ai eu un nouveau problème après cela, je pourrais avoir hôte/admin/pages/ajouter alors je dois rediriger cette URL vers l'hôte/admin /index.php. Mais maintenant, il le redirige vers host/index.ph au lieu de host/admin/index.php – taras