Hellihello dedlfix,
merci.
echo $begrüßung;
RewriteRule (.*) index.php?abc=def&url=$0 [L]
["url"]=> string(9) "index.php"
die URL aber ist:
http://localhost/blablabla/httpdocs/asdfasdf/asdfasdf/asdf.cde
Ich dachte mit [L] stopp ich die Ausführung und würde eigentlich den kompletten URL erwischen..?[L] verhindert die Ausführung weiterer Rules _für_diesem_Durchlauf_. Eine RewriteRule in einer Per-Verzeichnis-Konfigurationsdatei dreht nach dem Umschreiben eine neue Runde (erzeugt einen internen Redirect). Das passiert solange bis kein Umschreiben mehr stattfand. Eine neue Runde bedeutet auch, dass ein bereits erreichtes [L] uninteressant geworden ist. Es wird lediglich neu für die aktuelle Runde berücksichtigt, falls die Bedingung zutrifft.
Mh, versteh ich nicht ganz, aber bedeutet scheints, dass
.* index.php [L] öfter die Schleife durchläuft.
Beim "Rundendrehen" werden bei ungünstiger Regelnotation auch schon mal mehrere Umschreibungen vorgenommen, bis zufällig keine Regel mehr greift. Dann ist aber eventuell mehr Information verloren gegangen als beabsichtigt. Es kann aber auch zu Endlosschleifen führen, die der Apache aber nach einer konfigurierbaren Anzahl Durchläufen abbricht. Im Allgemeinen verhindert man mehrfache Ausführungen, indem man mittels RewriteCond die Regelausführung unterbindet, wenn die nachgefragte Datei (oder ein Verzeichnis) existiert.
Also
RewriteCond "wenn die Datei nicht existiert, dann mach..." ?
Und wenn dann nur eine index.php existiert (oder eine rewrite.php) und sonst keine, dann wird eben dann nicht mehr umgeschrieben, wenn auf diese bereits umgeleitet wurde. Hätte auch den Vorteil, dass eingebundene Bilder oder CSS-Files nicht weiter behellligt bzw. ungewollt umgeschrieben würden.
Was konkret abläuft kann man sich im RewriteLog anschauen. Allerdings muss man dazu den Apachen verwalten können. Das RewriteLog lässt sich nicht per Verzeichnis konfigurieren.
Naja, testen tu ich grad mit XAMPP unter WinXP.
RewriteRules beachten außerdem den Querystring nicht. Es gibt nur das Flag QSA, mit dem der Querystring angefügt wird. Das ist vermutlich nicht genau das was du willst. Der Querystring lässt sich aber mit einer RewriteCond ansprechen, und dann gibt es auch eine Backreferenz darauf (mit % beginnend).
Na, gut nochmal zur Erinnerung, aber auf den wollte ich u.U. verzichten bzw. war mir klar, dass der erstmal in der URL keine Rolle spielen würde.
Eigentlich dachte ich, example.com/contact example.com/news example.com/imprint u.s.w. auf eine Datei umzuleiten und dort dann mit einem switch den content auszugeben.
Alternative wäre halt example.com?content=contact etc., was irgendwie simpler wäre, weil dann der switch direkt mit $_GET["content"] gebaut werden könnte. Irgendwie dachte ich halt, die o.g. Variante wäre "cooler".
Dank und Gruß,