Seite 1 von 1

was ist da los ?

Verfasst: 17.09.2007 16:55
von heinetz1
Hallo Forum,

ich habe zum ersten Mal mit mod-rewrite experimentiert und bin sogar zum gewünschten Ergebnis gekommen. Aber nun muss
ich ein Phänomen beobachten, dass ich nicht verstehe. Meine RewriteRules habe ich in einer .htaccess definiert, die direkt im
DocumentRoot liegt. Es sind etwa 400 Rules nach dem Muster:

RewriteRule ^Impressum/$ /_content/?site_id=138&%{QUERY_STRING}

Die .htaccess wird von einem Sript auf dem Webserver generiert, wenn ein Redakteur eine neuen Seite mit dem selbstgebastelten CMS
veröffentlicht. Dieser Prozess nimmt den Server einigermassen in Anspruch und benötigt einige Rechenzeit, aber das kommt nicht so oft
vor. Um abzufangen, dass die .htaccess doch nicht akuell ist, habe ich ausserdem ein ErrorDocument definiert, dass statt nur zu sagen,
dass die angeforderte URL nicht 'da' ist, erstmal diese .htaccess aktualisieren und dann darin nachsehen soll, ob es für de angeforderte URL
nicht noch eine RewriteRule gibt, insofern die angeforderte URL doch zur Verfügung steht, um dann dhin per header(location:) weiterzuleiten.

Das funktoniert auch soweit: Wird eine URL angefordert, die nicht 'da' wird der prozess gestartet, die htaccess neu zu schreiben,
(es dauert etwas) und dann wird dahin weitergeleitet. Das Phänomen ist, dass das ErrorDocument häufig aufgerufen und damit
der Prozess gestartet wird, obwohl es eine RewriteRule für die URL gibt.

Das ganze sieht für mich so aus, als würde der Apache noch garnicht alle Rules gelesen haben
und vorher auf das ErrorDocument umleiten. Kann das sein ?

danke für eure Tipps und

beste gruesse,
heinetz1

Verfasst: 24.09.2007 10:05
von Gumbo
Vielleicht solltest du das URL Routing mit PHP übernehmen, da das aufgrund der Möglichkeit, auf eine Datenbank zuzugreifen, viel flexibler ist als für jeden Fall eine eigene Regel zu definieren.