mod_rewrite

Methos

Erfahrenes Mitglied
Versuch mich grad drüber ein wenig schlau zu machen...
Was ich aber im moment noch gar nicht versteh ist,
ich habe einen link wie diesen hier:

index.php?show=guestbook
dieser soll z.b. auf guestbook.html umgewandelt werden.

Das erreich ich auch mit dem Eintrag in der .htaccess

RewriteEngine on
Options +FollowSymlinks
RewriteBase /
RewriteRule guestbook.html index.php?show=guestbook

Das klappt auch. Jetzt zu einer meiner Fragen:

Muß denn jetzt der Link in der index.php auf guestbook.html oder kann er auch weiterhin auf index.php?show=guestbook verweisen?

Meine bisherigen Tests ergaben das mans auf guestbook.html umändern muß. Allerdings dachte ich ja das er das dann automatisch umstellt :(

Bis zu den regulären Ausdrücken bin ich jetzt noch gar nicht soweit vorgedrungen :( aber die benötige ich ja dann auch, da das Gästebuch ja auf mehrere Seiten verteilt wird...

Aber vielleicht kann mir hier einer das Brett vorm Kopf wegnehmen ;) Danke schon mal
 
Methos hat gesagt.:
RewriteEngine on
Options +FollowSymlinks
RewriteBase /
RewriteRule guestbook.html index.php?show=guestbook

Das klappt auch. Jetzt zu einer meiner Fragen:

Muß denn jetzt der Link in der index.php auf guestbook.html oder kann er auch weiterhin auf index.php?show=guestbook verweisen?
in diesem Fall müssen beide Varianten funktionieren
 
klar es funktionieren auch beide, doch im Browser wirds nicht umgewandelt wenn in der index.php der link nicht als guestbook.html hinterlegt wird. Wie gesagt vielleicht hab ich hier auch nur ein Verständnisproblem, aber ich dachte halt das der .htaccess Eintrag das dann automatisch umwandelt egal ob der link so oder so übergeben wird.
 
Da hast Du wohl ein Verständnisproblem!

Der Browser hat mit mod_rewrite gar nix zu tun und umwandeln tut der erst Recht nichts!
mod_rewrite ist eine rein serverseitige Erweiterung des Apache.

Was passiert ist folgendes:

Die Regel

RewriteRule guestbook.html index.php?show=guestbook

veranlasst den Apache bei einer Anfrage nach "http://www.domäne.de/guestbook.html" das Ergebnis von "http://www.domäne.de/index.php?show=guestbook" zurückzugeben.
Wenn du nur "http://www.domäne.de/index.php?show=guestbook" aufrust, gibt der Apache natürlich auch das entsprechende Ergebnis aus.

Im Prinzip ist das so, wie wenn Du von mir ein Beck's möchtest und ich bringe dir ein Paulaner! Fragst Du gleich nach dem Paulaner, bekommst Du auch ein Paulaner.

Hoffentlich ist's jetzt verständlich.

Gruss,

Thomas
 
hmm ok also muß der link innerhalb der index.php z.b. auf guestbook.html verweisen. Ok das ist mir nun soweit klar.

Aber wie mache ich das dann bei den dynamischen Seiten?
wie diesem link hier:

index.php?show=guestbook&lim=$backlim

hmm ich glaub ich steh immer noch gewaltig auf der Leitung.
 
So, hab immer noch ein Problem, ich übergeb zwei Sachen an eine andere Seite:

hier der alte Link
PHP:
<a href='index.php?show=gallerieg&bildID=$bildID&limit=$limit'>

den neuen hab ich so angepasst:
PHP:
<a href='bild-$limit-$bildID.html'>

die .htaccess sieht so aus:

PHP:
RewriteRule gallerie.html index.php?show=gallerie
RewriteRule ^gallerie([0-9]+).html$ index.php?show=gallerie&lim=$1
RewriteRule ^bild-([0-9]+)-([0-9]+).html$ index.php?show=gallerieg&lim=$1&bildID=$2

Das Problem ist das ich entweder den lim oder die bildID bekomme. Mit den jetztigen Einstellungen ists nur die bildID. Nur wie muß ich das machen wenn ich alle beide Werte möchte?

Ich hoffe mir kann noch jemand helfen?
 
Zurück