2009-06-14 19 views
2

Ich brauche zwei bedingte Regeln. Hintergrund:Zwei Mod-Rewrite-Regeln

 
http://www.domain.com/.htaccess 
http://www.domain.com/index.php 
http://www.domain.com/admin/index.php 

Ich habe beide neu zu schreiben Regeln:

 
ROOT: 
RewriteEngine On 
RewriteCond %{QUERY_STRING} ^(.*)$ 
RewriteRule ^(.*/)([^/]+)/([^/]+) $1?$2=$3&%1 [L] 
RewriteCond %{QUERY_STRING} ^(.*)$ 
RewriteRule ^([^/]+)/ $1.php?%1 [L] 

ADMIN: 
RewriteEngine On 
RewriteCond %{REQUEST_FILENAME} !-f 
RewriteCond %{REQUEST_FILENAME} !-d 
RewriteRule ^([a-z]+?)/([a-z]+?)/(.*)$ index.php?model=$1&view=$2&params=$3 [L,NS] 

Ich muss irgendwie haben nur die eine .htaccess-Datei auf der Verwendung Root-Ebene beide Regeln, aber die ADMIN Regeln gelten nur, wenn url http://www.domain.com/admin/foo/bar/something/else und die ROOT-Regel gilt für http://www.domain.com/foo/bar/something/else.

Vielen Dank im Voraus, ich habe einen ganzen Tag versucht, dies zu tun, und wenn einer arbeitet, gibt mir der andere eine "Not Found" Seite Fehler.

Kris

+0

Duplizieren von http://stackoverflow.com/questions/992054/subfolders-and-mod-rewrite – jitter

+0

Jitter: können Sie meine Frage dann bitte beantworten? Warum einen Kommentar posten, wenn es nicht konstruktiv ist? – Torez

Antwort

1

würde ich verwenden:

RewriteEngine On 

# /admin/ rule 
RewriteCond %{REQUEST_FILENAME} !-f 
RewriteCond %{REQUEST_FILENAME} !-d 
RewriteRule ^admin/([a-z]+)/([a-z]+)/(.*)$ admin/index.php?model=$1&view=$2&params=$3 [L,NS] 
RewriteRule ^admin/ - [L] 

# other rules 
RewriteRule ^(.*/)([^/]+)/([^/]+)$ $1?$2=$3 [L,QSA] 
RewriteRule ^([^/]+)/ $1.php [L,QSA] 

Die QSA Flag (Query-String anhängen) ersetzen die RewriteCond %{QUERY_STRING} (.*) Richtlinien.

2
RewriteCond %{REQUEST_URI} !^/admin/ 
RewriteCond %{QUERY_STRING} (.*) 
RewriteRule ^(.*/)([^/]+)/([^/]+) $1?$2=$3&%1 [L] 
RewriteCond %{REQUEST_URI} !^/admin/ 
RewriteCond %{QUERY_STRING} (.*) 
RewriteRule ^([^/]+)/ $1.php?%1 [L] 

RewriteCond %{REQUEST_FILENAME} !-f 
RewriteCond %{REQUEST_FILENAME} !-d 
RewriteRule ^admin/([a-z]+?)/([a-z]+?)/(.*)$ /admin/index.php?model=$1&view=$2&params=$3 [L,NS] 
+0

Sie können Kommentare oder einen Absatz hinzufügen, der Ihre Bedingungen erläutert. –

+0

Chaos: Vielen Dank für Ihre schnelle Antwort. Es scheint aber nicht zu funktionieren ...? Ich habe sogar versucht, ein paar Dinge zu ändern und immer noch kein Glück :( – Torez

+0

Einige Änderungen gemacht. Versuchen Sie es jetzt. – chaos

Verwandte Themen