Rewrite Rule Problem

Hi Leute,

Ich habe vor eine bestimmte Url die in der Adressleiste eingegeben wird auf eine andre auf dem server umzulenken: (ohne redirect )
Eigentlich nichts schieriges, aber ich hab doch ein Problem:

Bsp:

Adressleiste => Verzeichnis

example.com/dasverzeichnis/diedatei.html
=>http://example.com/?url=dasverzeichnis/diedatei.html
oder
example.com/dasverzeichnis/diedatei.irgendwas
=>http://example.com/?url=dasverzeichnis/diedatei.irgendwas
oder
example.com/dasverzeichnis/diedatei
=>http://example.com/?url=dasverzeichnis/diedatei

Das wollte ich eigentlich benutzen:

Options +FollowSymLinks
RewriteEngine on
RewriteRule ^(.*)$ /?url=$1 [L]

Kommt aber lediglich nur ein Error 500 raus :unamused:
Wer kann mir helfen?

Bevor ich mir dazu Gedanken mache, entfernst du bitte erst mal die Verlinkungen - denn ich nehme nicht an, dass du bei Stiftung Warentest arbeitest, oder?

Also verlinke bitte auch nicht deren Domain (oder die von irgend jemand anderem), so dass die sich dann mit den unnötigen 404-Fehlern in ihren Logs rumschlagen müssen, wenn Suchmaschinen-Bots denen folgen - das würdest du bei deiner Seite doch wohl auch nicht wollen.

Für Beispiele gibt es explizit u.a. example.com/.net/.org - also bitte die für sowas benuzten.

Nimm die Options Zeile raus, die verursacht in erster Linie mal den 500er Fehler.

@chrisb
Man kanns auch übertreiben :neutral_face:

@freggle
Ok hab ich, aber nützt leider auch net viel… :slight_smile:

.* steht für “0 oder mehr beliebige Zeichen” - also trifft es auch auf den umgeschriebenen Request wieder zu, so dass du eine Endlosschleife produzierst.

Ne es soll ja keine Weiterleitung sein…
Ich habs ein wenig anders gemacht

RewriteEngine on
RewriteRule ^(.*)$ index.php?link=$1

Jetzt gehts ABER:

Der gibt mir wenn ich mit echo $_GET[‘link’]; den wert ausgebe folgendes aus:

index.php

wenn ich z.b. example.com/test/oder/sonstwas.jpg eingeben habe.

Er sollte aber /test/oder/sonstwas.jpg ausgeben

Habe ich von einer Weiterleitung gesprochen? Nein.

[quote]Ich habs ein wenig anders gemachtRewriteEngine on RewriteRule ^(.*)$ index.php?link=$1Jetzt gehts ABER:

Der gibt mir wenn ich mit echo $_GET[‘link’]; den wert ausgebe folgendes aus:

index.php[/quote]
Wieder genau die gleiche Geschichte.

Mach dir die Funktionsweise klar - der Request kommt beim Apachen an, wird umgeschrieben - und dann geht das ganze von vorne los: Der Apache behandelt die gerade intern umgeschriebene Adresse wie einen neu hereinkommenden Request, und wendet darauf wieder sämtliche RewriteRules an.

Der Request test/oder/sonstwas.jpg kommt an, Ausdruck ^(.)$ in der Regel passt, wird umgeschrieben zu
index.php?link=test/oder/sonstwas.jpg
Neue Runde, der Path-Bestandteil des Requests lautet index.php - Ausdruck ^(.
)$ in der Regel passt, wird umgeschrieben zu
index.php?link=index.php

Also entweder dafür sorgen, dass das Suchmuster nicht auf die Datei passt, auf die umgeschrieben werden soll - oder existente Dateien und Verzeichnisse gleich vom Umschreiben ausnehmen lassen; siehe Flags, die für RewriteConds verfügbar sind.

Kannst du mir das richtig machen? wär echt supernett^^ :slight_smile:
Also so, dass wenn das stammverzeichnis in von der index.php erreicht ist nicht noch einmal die schleife ausgeführt wird.
Ich bin kein spezi auf dem gebiet…

Das war ein freundliches RTFM …

Ich bekomme das einfach nicht hin…
Kannst du oder irgendjemand anders helfen???
Dafür ist ein Forum ja da, und derjenige der sich damit auskennt wirds sicherlich schnell hinbekommen.

Ein Forum ist dafür da, dass du beschreibst, was du probiert hast - dann kann ich dir auch sagen, was daran ggf. falsch ist.

ja das problem habe ich bereits geschildert,ich komme nicht weiter, da ichs nicht verstehe…

Hast du bereits bzgl. RewriteCond in der Dokumentation nachgelesen?

Oder es mal mit Suchen probiert? Auch das kann man machen, tut nicht weh.

@chrisb

Nee… Ich habe alle Zeichenkombinationen ausprobiert, die es gibt :ps: :ps:
Und habe dann alles nochmal umgerührt ( und es ist ja auch so schwierig www.google.de einzugeben… - als wenn ich da nicht schon gesucht hätte pfff…)
Egal ich hab meine Frage von jemand kompetenteren beantwortet bekommen…

@freegle und rest

Vielen Dank für eure Hilfe :winke: