2009-05-26 3 views
1

Ich habe Ordner home/admin. In diesem Ordner befindet sich index.php. Wenn ich auf domain.com/admin/ zugreife, leitet meine mod_rewrite-Regel meine index.php in den Home-Ordner um. Ich möchte, dass mod_rewrite bestehenden Ordner oder Dateien überspringt, und Sonderfall für/admin/Ordner, der index.php-Datei enthält.Hilfe mit mod_rewrite

Meine Rewrite-Regel ist:

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

Dank.

Antwort

3

Try

RewriteCond %{REQUEST_FILENAME} !-f 

zu

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

Ändern Dies Verzeichnisse sowie Dateien überspringen

Edit: Ich denke, es ist diese Regel ist, die falsch (auch) geht:

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

Versuchen Sie stattdessen

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

Es überspringt nicht, wenn ich host/admin schreibe. Ich brauche es zu überspringen, da ich index.php im Ordner habe. – taras

+0

Ich habe versucht, RewriteCond% {REQUEST_FILENAME}! -d, aber keine Hilfe – taras

+0

Dank Greg, es hat funktioniert, aber ich habe neues Problem danach, ich könnte Host/Admin/Seiten/hinzufügen, dann muss ich diese URL Host/Admin umleiten /index.php. Aber jetzt leitet es es an host/index.ph statt an host/admin/index.php um – taras