[.htaccess] RewriteCond [erledigt]

Matthiasnet

Well-known member
ID: 116869
L
14 August 2006
271
7
Hallo,

hab ein kleines Problem mit RewriteCond, möchte es anhand eines beispiels verdeutlichen.

Seite A = https://www.abc.de/ci/irgendwas_belibieges.html
Seite B = https://www.abc.de/ci/admin/irgendwas_belibieges.html

Seite A funktioniert wenn ich:
RewriteEngine on
RewriteRule ^(.*).html$ /ci/index.php/main/show_site/$1 [QSA]

AddType application/x-httpd-php .html
habe.
--> Seite B wird zu Seite A.

Seite B funktioniert wenn ich:
RewriteEngine on
RewriteRule ^admin/(.*).html$ /ci/index.php/admin/$1 [QSA]

AddType application/x-httpd-php .html
habe.
--> Seite A zeigt an, dass diese nicht gefunden werden konnte.

Nun wollte ich das ganze verbinden indem ich geschildertes um folgende Bedienung ergänze:
RewriteEngine on

RewriteCond %{REQUEST_FILENAME} !^.*/admin/.*
RewriteRule ^(.*).html$ /ci/index.php/main/show_site/$1 [QSA]

RewriteCond %{REQUEST_FILENAME} ^.*/admin/.*
RewriteRule ^admin/(.*).html$ /ci/index.php/admin/$1 [QSA]


AddType application/x-httpd-php .html
--> Seite A klappt, jedoch zeigt mir Seite B an, dass die Seite nicht gefunden werden konnte


Kann mir da jeamnd weiterhelfen?

Grüße

Matthiasnet
 
Zuletzt bearbeitet:
Hab gerademal gelesen, dass RewriteCond manchmal nicht funktiniert...kann das hier der Fall sein?

EDIT: AHHH ich hab den Fehler gefunden!
Für alle die es interessiert oder irgendwann mal das geliche Prob haben werden, anscheinend stellt das Slash (/) eine besondere Beudetung dar. Nachdem ich diese aus dem Suchergebnis entfernt hab klappt es nun!
Sieht nun so aus:
RewriteEngine on

RewriteCond %{REQUEST_FILENAME} !^.*admin.*
RewriteRule ^(.*).html$ /ci/index.php/main/show_site/$1 [QSA]

RewriteCond %{REQUEST_FILENAME} ^.*admin.*
RewriteRule ^(.*)/(.*).html$ /ci/index.php/$1/$2 [QSA]


AddType application/x-httpd-php .html
 
Zuletzt bearbeitet:
EDIT: AHHH ich hab den Fehler gefunden!
Für alle die es interessiert oder irgendwann mal das geliche Prob haben werden, anscheinend stellt das Slash (/) eine besondere Beudetung dar. Nachdem ich diese aus dem Suchergebnis entfernt hab klappt es nun!

Das kommt davon wenn man einfach blind Copy & Paste macht und gar nicht versucht zu verstehen was man da macht. Der Slash hat keine Bedeutung, der steht einfach nur für ein Slash. Ich hab oben schon geschreiben wo das Problem liegt/lag. Das Rotmarkierte ^ hat eine Sonderfunktion. Das Bedeutet das admin/ ganz vorne stehen muss. Das ist aber nie der Fall... da der Filename oder die URL immer mit / beginnen. Also müsste das mindestens "^/admin/" heißen... was aber auch noch falsch wäre da die URLs ja so aussehen "https://www.abc.de/ci/admin/" somit wäre eine richtige Lösung: "^/ci/admin/".

Alternativ kann man auch einfach das ^ weglassen und "/admin/" schreiben, oder, oder, oder...