mod_rewrite, Rule /(.*) für _alles_ nicht richtig ?
Jannes
- webserver
Hallo zusammen,
ich komme nicht so recht klar. Eigentlich sollte das, was ich mir hier aus dem Forumsarchiv zusammengeklaubt habe doch funktionieren, aber es tut's nicht:
htacces-datei im WebRoot
---
<IfModule mod_rewrite.c>
RewriteEngine On
RewriteBase /
RewriteCond %{HTTP_USER_AGENT} !^NameMeinesGanzSpeziellenUserAgents.*
RewriteRule /(.*) /umbau.php?url=$1 [L]
</IfModule>
---
Damit möchte ich alle Besucher, die nicht diesen speziellen UserAgent haben auf die umbau.php umleiten. (Ich hingegen möchte mit dem speziellen UserAgent die Seite ohne Umleitung testen können)
Wenn ich die Seite aufrufe mit www.domain.tld
oder mit www.domain.tld/
oder mit www.domain.tld/index.php
oder irgendeine andere Datei _aus_dem_Webroot_
dann wird mir immer die index.php (oder die entsprechende Datei) angezeigt, aber nicht die umbau.php
Wenn ich eine Seite aufrufe wie www.domain.tld/gibt_es/name.php
oder www.domain.tld/gibt_es_nicht/name.html
wird mir, wie gewünscht, die umbau.php angezeigt.
Wieso?
Gruß, Jannes
echo $begrüßung;
Wieso?
Befrage dazu bitte zunächst das RewriteLog. Das zeigt dir sehr detailliert an, was mod_rewrite mit deiner Anfrage anstellt. Dazu benötigst du allerdings die Möglichkeit, deinen Apachen zu konfigurieren, denn in der Per-Verzeichnis-Konfigurationsdatei (.htaccess) kann man das RewriteLog nicht einstellen.
echo "$verabschiedung $name";
Hi,
RewriteBase /
IIRC wird alles von der URL einschl. der RewriteBase nicht mehr an die RewriteRule weitergegeben.
oder mit www.domain.tld/
Hier kommt also m.W. bei der Rewrite-Rule ein Leerstring "" an,
oder mit www.domain.tld/index.php
und hier "index.php".
RewriteRule /(.*) /umbau.php?url=$1 [L]
Deine RewriteRule trifft zu, falls ein / vorkommt und irgendwas danach.
dann wird mir immer die index.php (oder die entsprechende Datei) angezeigt, aber nicht die umbau.php
Bei http://www.domain.tld/ liegt das am DirectoryIndex.
Wenn ich eine Seite aufrufe wie www.domain.tld/gibt_es/name.php
oder www.domain.tld/gibt_es_nicht/name.html
wird mir, wie gewünscht, die umbau.php angezeigt.
Wirklich wie gewünscht? Wie sieht der übergebene Parameter url aus?
Ich würde vermuten, da fehlt jeweils das "gibt_es" bzw. "gibt_es_nicht".
cu,
Andreas