url in verzeichnissen anzeigen
Günther S
- php
0 Fabian St.0 Günther S0 wahsaga0 XaraX0 Fabian St.0 dedlfix0 wahsaga0 Fabian St.
Hallo zusammen,
ich habe eine Url nach dem muster
www.meinedomain.de/index.php?module=news&showdetails=51
und hätte das gerne folgendermaßen angezeigt im Adressenfenster:
www.meinedomain.de/news/51/
order irgendwie in der art... wie kann man so etwas machen?
Vielen Dank im Voraus,
Günther S
Hi!
www.meinedomain.de/index.php?module=news&showdetails=51
und hätte das gerne folgendermaßen angezeigt im Adressenfenster:
www.meinedomain.de/news/51/
order irgendwie in der art... wie kann man so etwas machen?
Dies ist ein Fall für mod_rewrite.
Grüße,
Fabian St.
Dies ist ein Fall für mod_rewrite.
Puh, das klingt ja ziemlich kompliziert..
gibt es denn eine einfachere Möglichkeit die Domain zu verändern?
Ich habe nämlich mehrere Domains die alle zu meinem Webspace weitergeleitet werden und möchte dass die jeweilige Referer-Domain angezeigt wird..
Gruß,
Günther
hi,
Dies ist ein Fall für mod_rewrite.
Puh, das klingt ja ziemlich kompliziert..
ist es eigentlich nicht.
gibt es denn eine einfachere Möglichkeit die Domain zu verändern?
bitte was?
Ich habe nämlich mehrere Domains die alle zu meinem Webspace weitergeleitet werden und möchte dass die jeweilige Referer-Domain angezeigt wird..
dann ist mod_rewrite vermutlich die falsche baustelle.
allerdings verstehe ich dein problem auch noch nicht so ganz.
gruß,
wahsaga
Hallo Günther,
Dies ist ein Fall für mod_rewrite.
Puh, das klingt ja ziemlich kompliziert..
gibt es denn eine einfachere Möglichkeit die Domain zu verändern?
Die Domain läßt sich nicht ändern, ohne auf eine andere Domain zu referenzieren. Wenn es Dir um das Aussehen des URLs geht, so ist mod_rewrite nicht die einzigste Möglichkeite. Man kann dies auch mit PHP realisieren.
Ich habe nämlich mehrere Domains die alle zu meinem Webspace weitergeleitet werden und möchte dass die jeweilige Referer-Domain angezeigt wird..
Das ist jetzt wieder etwas anderes. Die Variable (http://de.php.net/manual/de/reserved.variables.php#reserved.variables.server) $_SERVER['HTTP_REFERER'] steht nur dann zur verfügung, wenn der Client (Browser/andere eingesetzte Software) diesen im HTTP-Request mitliefert. Dieses ist keines wegs immer der Fall. (Aber man kann ihn auch fälschen.)
Daher solltest Du lieber auf die Servervariable $_SERVER['SERVER_NAME'] ausweichen. Diese wird von der Serversoftware gesetzt und entsprich der Domain.
Gruß aus Berlin!
eddi
Hi!
Puh, das klingt ja ziemlich kompliziert..
gibt es denn eine einfachere Möglichkeit die Domain zu verändern?Ich habe nämlich mehrere Domains die alle zu meinem Webspace weitergeleitet werden und möchte dass die jeweilige Referer-Domain angezeigt wird..
Wie dir bereits die anderen gesagt haben, ist dies gar nicht so schwer, jedoch verstehe ich deine jetzige Frage nicht. Soll jedoch weiterhin sowas wie www.meinedomain.de/news/51/ auf www.meinedomain.de/index.php?module=news&showdetails=51 intern "aufgelöst" werden, dann ließe sich dies bereits mit folgender einfachen RewriteRule lösen:
RewriteEngine On
RewriteRule ^([a-zA-Z]+)([0-9]+)/?$ index.php?module=$1&showdetails=$2
Den abschließenden Slash habe ich jetzt mal als optional angenommen.
Grüße,
Fabian St.
echo $begrüßung;
www.meinedomain.de/news/51/
Den abschließenden Slash habe ich jetzt mal als optional angenommen.
So ein "abschließender" Slash ist keinesfalls optional sondern für relative Links entscheidend.
Wenn in der Ressource www.meinedomain.de/news/51/ ein relativer Link auf foo zeigt, dann fordert der Browser www.meinedomain.de/news/51/foo an. "Fehlt" der / lässt der Browser das 51 unter den Tisch fallen und fordert www.meinedomain.de/news/foo an.
Deswegen findet bei nicht eingetippten abschließenden Slashs immer ein vom Anwender meist nicht weiter beachtetes Geplänkel zwischen Webserver und Browser statt, bei dem ersterer letzerem mitteilt (müsste ein redirekt sein), dass statt www.meinedomain.de/news/51 www.meinedomain.de/news/51/ aufgerufen werden soll. Wenn man als Anwender mal die URL-Zeile anschaut, sieht man, dass der Browser dann brav ein / anhängt.
echo "$verabschiedung $name";
hi,
Deswegen findet bei nicht eingetippten abschließenden Slashs immer ein vom Anwender meist nicht weiter beachtetes Geplänkel zwischen Webserver und Browser statt, bei dem ersterer letzerem mitteilt (müsste ein redirekt sein), dass statt www.meinedomain.de/news/51 www.meinedomain.de/news/51/ aufgerufen werden soll. Wenn man als Anwender mal die URL-Zeile anschaut, sieht man, dass der Browser dann brav ein / anhängt.
bei echten verzeichnissen - idR. ja.
aber bei mod_rewrite hast du das selber in der hand, ob du in so einem fall noch mal einen redirect auf URL-mit-trailing-slash auslösen lassen willst oder nicht.
die problematik mit relativen pfadangaben ist in der tat existent - aber am einfachsten umgeht man die, in dem man relativ vom root aus verlinkt.
gruß,
wahsaga
Hi dedlfix!
www.meinedomain.de/news/51/
Den abschließenden Slash habe ich jetzt mal als optional angenommen.
So ein "abschließender" Slash ist keinesfalls optional sondern für relative Links entscheidend.
Wenn in der Ressource www.meinedomain.de/news/51/ ein relativer Link auf foo zeigt, dann fordert der Browser www.meinedomain.de/news/51/foo an. "Fehlt" der / lässt der Browser das 51 unter den Tisch fallen und fordert www.meinedomain.de/news/foo an.
Ich weiß sehr wohl, dass es eine Rolle spielt, ob ein abschließender Slash vorhanden ist. Mit meinem "optional" meinte ich, dass es mit meiner obigen RewriteRule egal ist, ob ein abschließender Slash vorhanden ist oder nicht [1]. Über mögliche Folgen darüber habe ich bewusst nichts geschrieben, da dies m.E. zuweit geführt hätte. Aber diesen Part hast du ja jetzt für mich übernommen :-)
Deswegen findet bei nicht eingetippten abschließenden Slashs immer ein vom Anwender meist nicht weiter beachtetes Geplänkel zwischen Webserver und Browser statt, bei dem ersterer letzerem mitteilt (müsste ein redirekt sein), dass statt www.meinedomain.de/news/51 www.meinedomain.de/news/51/ aufgerufen werden soll. Wenn man als Anwender mal die URL-Zeile anschaut, sieht man, dass der Browser dann brav ein / anhängt.
Was ist denn ein redirekt? Da macht eine Eindeutschung wenig Sinn :-) Wenn du Redirect meinst, dann hast du Recht ;-)
192.168.0.21 - - [19/May/2005:15:36:03 +0200] "GET /~fabi HTTP/1.1" 301 384
192.168.0.21 - - [19/May/2005:15:36:03 +0200] "GET /~fabi/ HTTP/1.1" 200 1799
Grüße,
Fabian St.
[1] Live-Beispiel: http://wazgnuks.net/impressum bzw. http://wazgnuks.net/impressum/
re
Was ist denn ein redirekt?
nur ein Tippfehler.
Da macht eine Eindeutschung wenig Sinn :-)
Ist hier eine Verenglischung sinnvoll? :-)
dedlfix
Hi!
Was ist denn ein redirekt?
nur ein Tippfehler.
Da macht eine Eindeutschung wenig Sinn :-)
Ist hier eine Verenglischung sinnvoll? :-)
Aber _alle_ sagen _es_ so!!!11 :-) :-)
Grüße,
Fabian St.
hi,
Mit meinem "optional" meinte ich, dass es mit meiner obigen RewriteRule egal ist, ob ein abschließender Slash vorhanden ist oder nicht [1].
[1] Live-Beispiel: http://wazgnuks.net/impressum bzw. http://wazgnuks.net/impressum/
nur leider kein wirklich passendes :-)
an der stelle nutze ich nämlich kein mod_rewrite, sondern lediglich MultiViews - was bei beiden anfragen die real existierende scriptdatei /impressum.php aufruft.
gruß,
wahsaga
Hi wahsaga!
nur leider kein wirklich passendes :-)
Hätte ja sein können ;-)
an der stelle nutze ich nämlich kein mod_rewrite, sondern lediglich MultiViews - was bei beiden anfragen die real existierende scriptdatei /impressum.php aufruft.
Von MulitViews und mod_rewrite in Kombination weiß ich nichts gutes zu berichten ;-) Aber das hatten wir schon mal.
Dann führe ich eben http://info.fabis-site.net/gebrauch und http://info.fabis-site.net/gebrauch/ als Beispiel auf ;-)
Grüße,
Fabian St.