2009-08-14 5 views
2

Derzeit ist meine .htaccessseltsam .htaccess Frage

RewriteEngine on 
#rewrite the url's 
RewriteRule ^(.*)$ index.php?url=$1 [L,QSA] 

Also, aus dem Index i eine Vorlage machen, und es eine URL geben.

Normalerweise wird eine Seite aussehen würde dieses www.whatever.com/?url=test/page

Aber mit dem Umschreiben geht es www.whatever.com/test/page

So ist die Frage ist {

Ich habe einen Admin-Bereich der Website, die ich davon unberührt bleiben möchte. So muss/admin auf den Admin-Ordner in der Ordnerstruktur zugreifen. Danke für die Hilfe

Wes

Antwort

2

Der beste Weg, dies zu tun ist, um nicht die URL der realen Dateien und Verzeichnisse auf dem Dateisystem neu zu schreiben. Dies kann durch Hinzufügen von ein paar Rewrite Bedingungen Ihrer Regel erreicht werden:

RewriteCond %{REQUEST_FILENAME} !-s [OR] 
RewriteCond %{REQUEST_FILENAME} !-l [OR] 
RewriteCond %{REQUEST_FILENAME} !-d 
RewriteRule ^(.*)$ index.php?url=$1 [L,QSA] 

nun diese bedeuten jeweils nur Urls umschreiben, die: keine echte Datei (mit> 0 Größe), nicht ein symbolischer Link, und kein Verzeichnis.

Alternativ können Sie nur sicherstellen, dass die Regel nicht Ihr Admin-Verzeichnis überein:

RewriteCond %{REQUEST_URI} !^/admin 
RewriteRule ^(.*)$ index.php?url=$1 [L,QSA] 

Das erste Beispiel ist bei weitem der flexibelste, aber da es nicht mit irgendwelchen statischen Dateien stören, wie Bilder usw.