.htaccess => www.domain.de/x.php?page=home&artikel=1 zu www.domain.de/page/home/artikel/1/ machen

  • Puh... xDDD


    Habe versucht was ging, aber komme netmehr weiter xD :-(



    Keine ahnung ob das bis jetzt richtig ist. xDDD


    Es soll halt eine datei mit beliebigem dateinamen nehmen, dann mit beliebigem ende (php oder html [welches man ja auch php parsen lassn kann]) und dann sucht es halt nach dem ding nach dem fragezeichen. Keine ahnung verstehe das net xDD


    bitte um hilfe

  • Also, ich erkläre mal ohne irgendwelche Links mit einem Beispiel von mir:
    Meine .htaccess (verkürzt auf relevante Bereiche) sieht so aus:


    Code
    1. RewriteEngine on


    Zuerst wird mal gesagt, dass jetzt umgeschrieben werden soll.


    Code
    1. RewriteBase /blog/


    Danach kommt die RewriteBase, sprich wofür das ganze gilt - in meinem Fall ist es mein Blog, der im Verzeichnis 'blog' im Ordner htdocs von XAMPP, somit ist ist die Base /blog/.


    Code
    1. RewriteRule ^[-0-9a-z]*-mitglied-([0-9]+)\.htm$ mitglied.php?id=$1
    2. RewriteRule ^[-0-9a-z]*-mitglied-([0-9]+)\.php$ mitglied.php?id=$1


    Dies sind mal zwei Einträge. Ziel ist, dass URLs des Musters benutzername-mitglied-id.htm oder benutzername-mitglied-id.php herauskommen. Natürlich könnte man die beiden auch zusammenfassen, aber der Einfachheit halber mal so. Unterschieden wird zwischen eckigen Klammern [] und runden Klammern (). In den eckigen Klammern steckt der reguläre Ausdruck, nach dem gesucht werden soll, dieser ist zur Umschreibung NICHT relevant. Somit dient der Benutzername hier lediglich der Optimierung der URL - man sieht auf einen Blick, welches Profil man hier gerade aufruft.
    Runde Klammern dagegen übergeben einen Wert zum Umschreiben der URL. In diesem Fall wird hier die ID des Mitglieds übergeben, die aus ein oder mehreren Zahlen bestehen kann. Der Wert in den Klammern wird in der Variable $1 gespeichert - und die wird dann per GET an die mitglied.php übergeben (zweiter Teil der RewriteRule). Hier immer nochmal überprüfen, ob auch wirklich das übergeben wurde was man wollte - ich überprüfe dann in der mitglied.php mit ctype_digit, ob auch wirklich eine Zahl übergeben wurde.


    Ich hoffe das war einigermaßen verständlich.
    Bei Fragen gerne fragen :)


    Grüße

  • Ich komme einfach nicht mehr weiter.! :-(


    php datei:


    .htaccess


    Ich kann die Seite http://localhost/test/index.php/page/home/artikel/1 zwar aufrufen aber es werden keine werte an $_GEt übergeben -.- :-(