2012-12-20 12 views
10

Ich habe ein CMS an der Wurzel meiner Domain mit folgendem .htaccess installiert:.htaccess alle requestes umleiten außer Unterordner auf index.php

RewriteEngine On 
RewriteBase/
RewriteCond %{REQUEST_FILENAME} !-f 
RewriteCond %{REQUEST_FILENAME} !-d 
RewriteRule ^(.*)$ index.php?q=$1 [L,QSA] 

Diese kümmert sich um freundliche Urls alles zu index.php umleiten . Mein Problem ist, dass ich einen Unterordner habe, der ein anderes cms hat. Ich brauche die Anfragen an den Unterordner statt in index.php in den richtigen Ordner umgeleitet zu werden.

habe ich versucht, die folgenden aber nicht

RewriteCond %{REQUEST_FILENAME} !-f 
RewriteCond %{REQUEST_FILENAME} !-d 
RewriteCond $1 !^(sub-folder) 
RewriteRule ^(.*)$ index.php?q=$1 [L,QSA] 

jemand zu funktionieren scheint helfen?

RewriteCond %{REQUEST_FILENAME} !-f 
RewriteCond %{REQUEST_FILENAME} !-d 
RewriteCond %{REQUEST_URI} !/subfolder 
RewriteRule ^(.*)$ index.php?q=$1 [L,QSA] 

Dank

Antwort

15

Sie sollten richtig überprüfen, ob Anfrage uri den Ordner Unter passen in jedem Fall die ersten beiden RewriteCond bedeutet: wenn Anfrage Dateiname nicht eine Datei oder ein Verzeichnis ist. Dies bedeutet, dass Sie, wenn sich die Datei, auf die Sie verweisen, in den Unterordner und den Unterordner in Ihrer Docroot befindet, nichts tun müssen.

Wenn immer noch nicht funktionieren, könnte das Protokoll ermöglicht Ihnen helfen:

RewriteLog "/web/logs/mywebsite.rewrite.log" 
RewriteLogLevel 9 
RewriteEngine On 

Vermeiden Sie dieses Protokoll

Mit einem hohen Wert für Stufe in der Produktion wird sich verlangsamen Ihren Apache-Server dramatisch! Verwenden Sie die Überschreibungsprotokolldatei auf einer Ebene größer als 2 nur zum Debuggen!

+0

Irgendwie funktioniert das nicht:/ – jribeiro

+0

Mein schlechtes. Funktioniert gut – jribeiro