Thread mod_rewrite und logische Fallunterscheidung (15 answers)
Opened by cbxk1xg at 2004-04-16 16:31

cbxk1xg
 2004-05-01 03:51
#30700 #30700
User since
2003-10-20
496 Artikel
BenutzerIn
[default_avatar]
Danke, Ihr seid alle spitze!

Manchmal ist es gut etwas Zeit ins Land gehen zu lassen, bevor man sich einem ungelösten Problem erneut widmet...

Ich habe die Lösung gefunden! Ich habe mal testweise %{DOCUMENT_ROOT} als Querystring an einen Redirect-URL angehangen und siehe da, es stand nicht meine Document-root da, sondern die des Apache-Servers. Das heisst %{DOCUMENT_ROOT} ist nicht das gleiche wie in Perl $ENV{'DOCUMENT_ROOT'}!

Ich habe also nun einfach die DOCUMENT_ROOT von Hand eingetragen und eine SKIP-Option eingefügt. Das war's!

@ Jan: DANKE! Ohne Dich wäre ich da nie darauf gekommen. Ich glaube ich habe jetzt so viel rumprobiert und gelesen, dass ich beim nächsten auch mal jemand anderem helfen kann; als "Mod_rewrite-Profi". :-)

Code: (dl )
1
2
3
4
5
6
7
8
9
10
11
12
13
14
RewriteEngine on
RewriteBase /

# Get file from Cache.
RewriteCond %{REQUEST_METHOD} GET
RewriteCond %{REQUEST_URI} .*/([^/]+\.htm)$
RewriteCond /homepages/123/htdocs/Cache/%1 -s
RewriteRule .* Cache/%1 [QSA,S=2]

# Get file via CMS.
RewriteCond %{REQUEST_METHOD} GET
RewriteCond %{REQUEST_URI} .*/([^/]+\.htm)$
RewriteCond /homepages/123/htdocs/Cache/%1 !-s
RewriteRule (.*)\.htm$ /homepages/123/htdocs/CMS.pl?PID=$1 [T=application/x-httpd-cgi,QSA,L]


Die RewriteCond konnte vorher gar nicht mit -s prüfen, da der Pfad einfach falsch war. Außerdem ist die RewriteBase enorm wichtig. Bei Multidomainhosting wird das noch viel wichtiger.

Jetzt tut alles so wie es soll und ich trinke erst mal ein Bier!

View full thread mod_rewrite und logische Fallunterscheidung