mod_rewrite Verknüpfung

gulo92

Mitglied
mod_rewrite wo ist der Fehler?

Hallo,

ich beschäftige mich gerade erstmals mit dem Thema mod_rewrite.
Die Ausgangsseite überträgt via get den Wert 12 für die Variable "id"
PHP:
seite.php?id=12

auf seite.php wird der Inhalt normal angezeigt und der entsprechende Anhang an der URL wird auch korrekt übermittelt.
Nun möchte ich, dass aus /seite.php?id=12 ---> seite12.html wird.

Das wollte ich so in der *.htacces umsetzen:
PHP:
RewriteEngine on 
RewriteRule (.*)\.html$ seite.php?id=$1

Allerdings bleibt die URL immer gleich uns nichts ändert sich... was mache ich falsch?

Danke!
 
Seite a.html hat diesen Link:

PHP:
<a href="/details/seite.php?id=12">LINK</a>

Dieser Link soll im Browser aber als /details/seite_12.html angezeigt werden.

Daher habe ich nun in der .htaccess-Datei folgendes stehen.

PHP:
RewriteEngine on 
RewriteRule ^seite\.php\?id=(.*)$ seite$1.html

Jetzt dachte ich, dass das schon reichen würde und die URL im Browser in der gewünschten Form eingeblendet wird ...
 
Du verstehst das wohl falsch, der Hyperlink verweist automatisch auf die anzeigbare URL also:
PHP:
<a href="/details/seite_12.html">LINK</a>
Das wird dann intern im Apachen halt auf den richtigen normalen Link umgewandelt,
sodass der Benutzer nur den zusehen bekommt.
 
diene .htaccess steht aber schon im Unterverzeichnis 'details', oder?
Ansonsten das ^ entfernen. Das ^ steht im Pattern für String-Anfang.

Oder du machst es os, dass der ganze Pfad mitgegeben wird. Das folgende sollte mMn gehen
Code:
RewriteEngine on 
RewriteRule ^(.*)seite.php?id=(.*)$ $1seite$2.html
 
Zurück