Mod Rewrite, how to?
Jamal
- webserver
Hallo,
im Vorraus: Ja ich habe Google benutzt, Ja ich habe die Forumsuche benutzt.
Ich checks trotzdem nicht.
Beispiel:
mein link sieht bisher so aus:
<a href='index.php?s=whatever&x=nothingelse'>Link</a>
Wenn ich diese Url aufrufe steht in der Addresszeile folgende URL
http://localhost/index.php?s=whatever&x=nothingelse
es soll dort aber stehen:
http://localhost/whatever/nothingelse
und wenn ich so eine url habe:
http://localhost/index.php?s=whateveryouwant
soll
http://localhost/whateveryouwant
dort stehen.
Also soll immer "s=", "x=" usw weggelassen und durch ein "/" ersetzt werden
Muss ich im Quelltext dann ändern? in die übershcriebene url oder bleibt die einfach so?
Also nach dem Ändern:
1.
<a href='index.php?s=whatever&x=nothingelse'>Link</a>
oder
2.
<a href='whatever/nothingelse'>Link</a>
Das soll es den suchmaschinen leichter machen meine Seiten zu indexieren.
Lg
Jamal
Hi,
mein link sieht bisher so aus:
<a href='index.php?s=whatever&x=nothingelse'>Link</a>
Wenn ich diese Url aufrufe steht in der Addresszeile folgende URL
http://localhost/index.php?s=whatever&x=nothingelsees soll dort aber stehen:
http://localhost/whatever/nothingelseund wenn ich so eine url habe:
http://localhost/index.php?s=whateveryouwant
sollhttp://localhost/whateveryouwant
dort stehen.
Dann musst du natuerlich auch genau darauf verlinken.
Muss ich im Quelltext dann ändern?
Ja natuerlich - wo denn sonst?
Beim Googlen wirst du ja wohl bereits wenigstens herausgefunden haben, dass mod_rewrite *serverseitig* arbeitet. Dass es also nicht Linkziele veraendert im HTML-Code, den der Client bereits erhalten hat, ist also nur logisch.
Also nach dem Ändern:
1.
<a href='index.php?s=whatever&x=nothingelse'>Link</a>oder
2.<a href='whatever/nothingelse'>Link</a>
Letzteres natuerlich.
mod_rewrite brauchst du dann serverseitig, damit der Server diese angeforderte Adresse wieder in index.php?s=whatever&x=nothingelse o.ae. umschreiben kann - damit er diese Parameter an ein Script namens index.php weitergeben kann, welches sie dann auswerten kann.
MfG ChrisB
Hi Jamal,
Muss ich im Quelltext dann ändern? in die übershcriebene url oder bleibt die einfach so?
Also nach dem Ändern:
1.
<a href='index.php?s=whatever&x=nothingelse'>Link</a>oder
2.<a href='whatever/nothingelse'>Link</a>
Der Browser ruft die URL auf, die du ihm sagst.
Sprich: Der Browser geht zu der URL, die im Quelltext steht.
Sprich: Der Browser geht zu index.php?s=whatever&x=nothingelse und folglich steht das auch in der Adresszeile.
Also musst du eine Links erst mal so in den Quelltext schreiben, wie der Browser sie aufrufen und du sie in der Adresszeile stehen haben möchtest:
<a href="/whatever/nothingelse">Ein Link</a>
Auf dem Server kannst du dann mittels RewriteRule definieren, wie der Apache die URL manipulieren soll, bevor er sie verarbeitet.
~~~apache
RewriteEngine On
RewriteRule ^([a-zA-Z0-9]+)/?([a-zA-Z0-9]+)?$ index.php?s=$1&x=$2
So könnte das beispielsweise aussehen, $\_GET['s'] und $\_GET['x'] sind dann immer vorhanden, wobei letzteres dann eventuell leer sein kann.
Viele Grüße,
~ Dennis.
--
Mein [SelfCode](http://community.de.selfhtml.org/fanprojekte/selfcode.htm): [ie:{ fl:( br:> va:) ls:\[ fo:) rl:( n4:# ss:) de:\] js:| ch:{ sh:| mo:} zu:|](http://www.peter.in-berlin.de/projekte/selfcode/?code=ie%3A%7B+fl%3A%28+br%3A%3E+va%3A%29+ls%3A%5B+fo%3A%29+rl%3A%28+n4%3A%23+ss%3A%29+de%3A%5D+js%3A%7C+ch%3A%7B+sh%3A%7C+mo%3A%7D+zu%3A%7C)
Hallo!
~~~apache
RewriteEngine On
RewriteRule ^([a-zA-Z0-9]+)/?([a-zA-Z0-9]+)?$ index.php?s=$1&x=$2
Vielen Dank!
Ich hab aber ein Problem.
Also das gnaze FUnktioniert so:
root/
index.php
Diese kriegt den Paramenter s mit einem Wert z.B. "Reg"
dann holt er sich den Parameter und includet die datei
root/contents/Reg.php
also so wie du das geschrieben hast klappt das also
<a href='whatever/nothingelse'>Link</a>
Wenn ich dann bei "nothingelse" bin, dann dann ist dort ein Link:
<a href='index.php?s=whatever®As=nothingelse'>Registrieren als Käufer</a>
Er ruft also den gleichen Link wie vorher nochmal auf nur diesmal mit Parameter, aber irgendwie geht er damit nicht richtig um!
Also dieser Link:
<a href='whatever/nothingelse/®As=kaeufer'>Registrieren als Käufer</a>
Muss so aussehen:
<a href='whatever/nothingelse/kaeufer'>Registrieren als Käufer</a>
Und mein Skript muss dieses "kaeufer" irgendwie auslesen können wie mach ich das?
weil wenn kaeufer nicht herrausgelesen werdne kann, dann erscheint das falsche ANmeldeformular.
Lg
Danke im Vorraus,
Jamal
Hallo,
schon gut, es klappt.. =)
Vielen Dank.
Nun aber ne andere Frage..
welch URL mögen Suchmaschinen lieber?
1. <a href='/buysocial.de/registrieren/kaeufer'>Registrieren als Käufer</a>
2.<a href='/buysocial.de/registrieren/kaeufer.html'>Registrieren als Käufer</a>
3. <a href='http://domain.de/buysocial.de/registrieren/kaeufer'>Registrieren als Käufer</a>
4. <a href='http://domain.de/buysocial.de/registrieren/kaeufer.html'>Registrieren als Käufer</a>
Lg
Dennis
Hi,
Nun aber ne andere Frage..
welch URL mögen Suchmaschinen lieber?
Darueber kann man viel spekulieren - eindeutige Aussagen zu treffen ist aber kaum moeglich, weil niemand ausserhalb die Geheimnisse der SuMas kennt.
- <a href='/buysocial.de/registrieren/kaeufer'>Registrieren als Käufer</a>
2.<a href='/buysocial.de/registrieren/kaeufer.html'>Registrieren als Käufer</a>
<a href='http://domain.de/buysocial.de/registrieren/kaeufer'>Registrieren als Käufer</a>
<a href='http://domain.de/buysocial.de/registrieren/kaeufer.html'>Registrieren als Käufer</a>
Alle vier klingen erst mal so, als ob sie fuer eine Suchmaschine relativ uninteressanten Inhalt haetten - denn die SuMa legt keinen Wert darauf, sich bei dir zu registrieren.
Inhaltsseiten, bspw. die Artikelbeschreibungen in einem Shop - *das* waere fuer die Suchmaschine interessant.
Bei deinen Beispiel-Links verstehe ich nicht so ganz, warum du da ein "Verzeichnis" namens buysocial.de drin hast - wenn das ganze spaeter mal unter der Domain laufen soll, dann braucht deren Name nicht mehr im Pfad drinstehen.
Und andersherum, erst mal kaeufer - als der jenige, der hier eine Aktion ausfuehrt - und dann registrieren - die Aktion, die er auf der so addressierten Unterseite ausfuehrt, erschiene mir logischer.
/kaeufer/registrieren
MfG ChrisB
Hallo,
Und mein Skript muss dieses "kaeufer" irgendwie auslesen können wie mach ich das?
Dennis hat dir das Grundprinzip erklärt. Nach dem gleichen Prinzip musst du bei einer dritten Variable vorgehen.
Viele Grüße
Thorsten