Verständliche Erklärung zu mod_rewrite

Diskutiere und helfe bei Verständliche Erklärung zu mod_rewrite im Bereich Webmaster Support, Scripts, etc im SysProfile Forum bei einer Lösung; Hi, ich habe jetzt schon einiges Probiert und auch vieles gelesen. Leider komme ich nicht zu dem gewünschten Erfolg. Ich habe bei meiner Hompage die... Dieses Thema im Forum "Webmaster Support, Scripts, etc" wurde erstellt von McAtze, 6. April 2011.

  1. McAtze
    McAtze Alter Hase
    Registriert seit:
    1. Januar 2009
    Beiträge:
    2.042
    Zustimmungen:
    70

    Hi,

    ich habe jetzt schon einiges Probiert und auch vieles gelesen. Leider komme ich nicht zu dem gewünschten Erfolg.

    Ich habe bei meiner Hompage die Seiten über die index.php aufgerufen, d.h. /index.php?page=1 usw. Dadurch werden dann bestimmte Inhalte reingeladen, je nach dem welche ID ich übergebe.

    Nun habe ich den jeweiligen Contentseiten immer "$thisPage" mit dem Titel der Seite. Ich würde gern in der .htaccess so umschreiben, dass beim Aufruf der Seite anstatt ..

    Code:
    /index.php?page=1
    dann ..

    Code:
    /about-me.html
    oder
    Code:
    /about-me
    steht.

    Wie stelle ich das denn am einfachsten an??

    Probiert habe ich schon von http://www.modrewrite.de ..

    Code:
    RewriteBase /
    RewriteEngine on 
    RewriteRule ^seite-([0-9]+).html$ index.php?page=$1
    
    Aber dafür müsste ich die Links alle umändern. Ich hätte es aber gerne andersherum .. Ich hoffe Ihr versteht mich und könnt mich aufklären. :(
     
  2. Da GuRu
    Da GuRu Administrator
    Admin
    Registriert seit:
    22. Dezember 2006
    Beiträge:
    1.568
    Zustimmungen:
    87

    also entweder du hast ein namens-system, das du verwenden kannst (also wenn der variablenwert sinnvoll ist) oder du musst einzel zuordnung machen...

    Code:
     
    "about me" <--> ?id=1
    
    ist zum beispiel nicht sinnvoll ;)
    das wäre sowas:

    Code:
     
    "about me" <--> ?id=about-me
    
    für deinen fall würde nur sowas gehen:

    Code:
     
    RewriteEngine on 
    RewriteRule ^about-me.html$    /index.php?page=$1
     
    
    für das sinnvolle wäre möglich:

    Code:
     
    RewriteEngine on 
    RewriteRule ^(.*?)\.html$ /index.php?page=$1
    
    und diese RULE wäre dann echt dynamisch, da

    hobby.html ==> index.php?page=hobby
    test.html ==> index.php?page=test
    ich-nix-wollen.html ==> index.php?page=ich-nix-wollen
    entspricht.

    allet kla? :D
     
  3. McAtze
    McAtze Alter Hase
    Themenstarter
    Registriert seit:
    1. Januar 2009
    Beiträge:
    2.042
    Zustimmungen:
    70
    Genau die dynamische Variante habe ich schon erfolgreich probiert. Nur muss ich dann meine Navigation in der PHP umschreiben. Und das wollte ich vermeiden. Wenn ich es bisher richtig verstanden habe ist es per Mod_rewrite nicht möglich dies umgekehrt zu machen.

    Ich danke dir für die schöne Erklärung. Ich mache mir mal weiter Gedanken ..
     
  4. Da GuRu
    Da GuRu Administrator
    Admin
    Registriert seit:
    22. Dezember 2006
    Beiträge:
    1.568
    Zustimmungen:
    87

    Nein, das geht nicht umgekehrt, da Apache vor PHP umleitet.
    Deshalb ist es immer gut, es vorher einzuplanen ;)

    Nachhinen sowas umzusetzen ist schwieriger... aber nicht unmöglich.

    Ein Methode wäre es die Ausgabe von PHP zu puffern (mit ob_start()) und dort mit preg_replace oder str_replace die Augabe zu modifizieren.

    Also Pufferung aktivieren, den Puffer mit str_replace("index.php?id=1", "about-me.html", $buffer) und dann mit ob_end_flush(); an den Browser schicken.

    Dann würde auch die dynamische Variante von mod_rewrite greifen.

    so oder so, müsstest du entweder in der htaccess oder in PHP eine Zurodnung festlegen....
     
Thema:

Verständliche Erklärung zu mod_rewrite

  1. Diese Seite verwendet Cookies. Wenn du dich weiterhin auf dieser Seite aufhältst, akzeptierst du unseren Einsatz von Cookies.
    Information ausblenden