mod_rewrite ka wieso das funktioniert



  • Damit das forum vom googlebot indexiert wird teusche ich statische seiten vor, ich lasse
    .php? zu -var- ersetzen
    = zu -is-
    & zu -and-
    und am ende ein .html
    diese art von urls gibt jetzt das phpbb aus

    damit diese urls ihr ziel finden werden sie vom apachen wieder zurück convertiert, das mache ich mit hilfe von mod_rewrite
    nach einigen try&errors ist dieser code entstanden

    RewriteCond %{REQUEST_URI} (.*)(-var-)(.*)
    RewriteRule ^(.*) %1.php?%3
    
    RewriteCond %{REQUEST_URI} (.*)(-is-)(.*)
    RewriteRule ^(.*) %1=%3
    
    RewriteCond %{REQUEST_URI} (.*)(-and-)(.*)
    RewriteRule ^(.*) %1&%3
    
    RewriteCond %{REQUEST_URI} (.*)\.html$
    RewriteRule ^(.*) %1 [R=permanent]
    

    irgend wie funktioniert, ich habe zwar noch nicht den 100% durchblick wie genau, aber es geht,

    frage: bei diese art von links

    http://www.c-plusplus.net/forum/viewtopic-var-t-is-78009-and-start-is-0-and-postdays-is-0-and-postorder-is-asc-and-highlight-is-.html
    

    habe ich immer ein 500ter bekommen, erst nach dem ich [R=permanent] an die letzte RewriteRule gesetzt habe gings, aber irgend wie kapiere ich nicht wieso?
    hat vielleicht jemand von euch eine ahnung?
    das R steht für redirect und sorgt dafür das man die neue url zu gesicht bekommt und eigentlich dürfe dann auch kein .html in der adresszeile auftauchen, aber es ist da.
    das .html wird nur bei urls gekillt wie http://www.c-plusplus.net/forum/index.php.html
    erst wenn ich zu RewriteRule ^(.*) %1&%3 ein [R=permanent] hinzufüge verschwindet das .html in

    http://www.c-plusplus.net/forum/viewtopic-var-t-is-78009-and-start-is-0-and-postdays-is-0-and-postorder-is-asc-and-highlight-is-.html
    

    was ich auch nicht recht verstehe ich wie das funktioniert das er z.b. alle -is- in der url ersetzt, nach den was ich gelesen habe dürfe er nur ein -is- ersetzen, naja es funktioniert aber seltsam ist es schon



  • Simple Logik:

    • 1. Regel auf ein Ergebnis anwenden -> Redirect
    • Wenn noch Elemente vorhanden, die erste Regel matchen, dann anwenden und Redirect.
    • Wenn nicht, dann zweite Regel anwenden und -> Redirect. Dann selbes Spiel wie bei erstens.

    Du machst also für jede Deiner Regeln so viele Umleitungen, wie zu ersetzende Elemente vorhanden sind. Mein Tipp dazu: Lass das bleiben. Damit haut Ihr Euch nur auf den Traffic.

    Gruß Jens


Anmelden zum Antworten