Christoph Schnauß: mod-rewrite / Verständnisfrage

Beitrag lesen

hallo,

RewriteEngine on

ok, das brauchst du, um mod_rewrite ansprechen zu können.

Options FollowSymLinks

Das hat mit mod_rewrite absolut nichts zu tun. Allerdings ist es etwas, was in einer .htaccess durchaus Sinn machen kann, sofern das Verzeichnis, in dem diese .htaccess liegt, tatsächlich auch Symlinks enthält.

ReWriteBase /

Hm. Kann man so angeben, muß man aber nicht unbedingt (ich weiß im Moment gar nicht, wie weit Apache case sensitive reagiert).

RewriteRule ^([^/.]+)$ index.php?site=$1 [L]

Ups.

Hierdurch erreiche ich, das alles was hinter der Hauptdomain steht und nicht eine Datei ist als Variable (site) von der index.php verarbeitet wird (jedenfalls funktioniert das so nach tagelangem Ausprobieren ;-).

Zweifelhafte Aussage, da hat Der Martin völlig recht.

Nun stehe ich aber vor dem Problem, das ich jetzt zwingend eine URL (komplett, d.h. mit http://.. usw.) ebenfalls so filtern will

Du solltest dieses "Problem" erläutern. "http://" ist zwar Bestandteil einer URL, was du aber bestenfalls übergeben kannst, ist etwas anderes. "http://" ist das benutzte Protokoll (es gibt ja außer HTTP noch weitere), und das _kannst_ du nicht in einer Variablen übergeben.

leider funktioniert das mit meinem Bastelversuch oben so gar nicht

Klar. Kann es auch nicht.

(wenn ich die ganzen Tuts richtig verstehe auch wegen den Slashes und weil die URL ja auch eventuell direkt die Datei enthalten könnte...

Da hast aber die "ganzen Tuts" nicht richtig gelesen.

Meine Frage simpel ausgedrückt:
Wie muss ich die Rewriterule ergänzen/ändern, damit nicht nur:
http://domain.de/test zu http://domain.de/index.php?site=test
sondern auch
http://domain.de/http://domain2.de/test.php zu http://domain.de/index.php?site=http://domain2.de/test.php
wird ?

Gar nicht. Deine Voraussetzungen sind schlichtweg falsch.

http://domain.de/test zu http://domain.de/index.php?site=test

Das geht _ungefähr_ so:
   RewriteRule ^test$  index.php?test  [QSA]
Voraussetzung ist, daß deine .htaccess in domain.de liegt - übrigens ein schlecht gewähler Bezeichner. Wenn man etwas ausprobieren möchte oder muß, nimmt man example.com, denn http://domain.de existiert natürlich und dürfte dir vermutlich nicht gehören.

http://domain.de/http://domain2.de/test.php zu http://domain.de/index.php?site=http://domain2.de/test.php

Das ist Unsinn. "http://domain.de/http://domain2.de/test.php" ist ungültig. Was du möchtest, ist "http://domain2.de/test.php" nach "http://domain.de/test.php" umzuleiten. Dazu muß in "domain2.de" eine andere .htaccess abgelegt werden, und in der schreibst du dann einfach:
   RedirectPermanent / http://domain.de/test.php
Das ist alles.

Grüße aus Berlin

Christoph S.

--
Visitenkarte
ss:| zu:) ls:& fo:) va:) sh:| rl:|