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... Discussion in 'Webmaster Support, Scripts, etc' started by McAtze, Apr 6, 2011.

  1. McAtze
    McAtze Alter Hase
    Joined:
    Jan 1, 2009
    Messages:
    2,042
    Likes Received:
    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
    Joined:
    Dec 22, 2006
    Messages:
    1,568
    Likes Received:
    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
     
    #2 Da GuRu, Apr 6, 2011
  3. McAtze
    McAtze Alter Hase
    Threadstarter
    Joined:
    Jan 1, 2009
    Messages:
    2,042
    Likes Received:
    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
    Joined:
    Dec 22, 2006
    Messages:
    1,568
    Likes Received:
    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....
     
    #4 Da GuRu, Apr 6, 2011
Thema:

Verständliche Erklärung zu mod_rewrite

  1. This site uses cookies to help personalise content, tailor your experience and to keep you logged in if you register.
    By continuing to use this site, you are consenting to our use of cookies.
    Dismiss Notice