tutorials.de Buch-Aktion 05/2012
ERLEDIGT
JA
ANTWORTEN
1
ZUGRIFFE
1141
EMPFEHLEN
  • An Twitter übertragen
  • An Facebook übertragen
AUF DIESES THEMA
ANTWORTEN
  1. #1
    Sturmrider Sturmrider ist offline Mitglied Gold
    Registriert seit
    Mar 2006
    Beiträge
    217
    Hallo zusammen,

    Ich habe einige RewriteRule's geschrieben, welche auch soweit funktionieren... - dachte ich zumindest. Nun musste ich feststellen, dass meine Seiten vom Server scheinbar mehrfach aufgerufen werden, auch wenn man es im Browser nur einmal sieht. Meine MySQL UPDATE-Querys wurden für jede RewriteRule einmal aufgerufen. Ich denke es liegt daran, dass ich in meinen RewriteRule's nicht beachtet habe, dass sie transitiv von einander abhängig sind und sich nicht gegenseitig überschreiben. Meine Frage ist nun, wie kann ich das vermeiden?

    Hier ein Auszug aus meinen Regeln (die Kommentare sollten etwa erklären was die Regeln machen sollen. Trotzdem, bei Fragen, einfach fragen ):

    Code :
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    
    # Ordner blog, galerie, login, logout als ID an "index.php?" anhängen
    RewriteRule ^(galerie|blog|logout|login)/{0,1}$ index.php?$1
     
    # folgenden Ordner nach galerie/ [album], an "index.php?album=" anhängen
    RewriteRule ^galerie/([^/]+)/{0,1}$ index.php?album=$1
     
    # den auf [album]/ folgenden Bilddateinamen zerlegen: [id]-[bildname.Endung]
    # [id] an "index.php?foto=" weiterreichen und
    # [bildname.Endung] an "&fid=" 
    # [album] kann optional mit "&album=" als letzte ID in der URL angehängt werden
    RewriteRule ^galerie/([^/]+)/([0-9]+)-([^/]+\.(jpg|jpeg|png|gif))$ index.php?foto=$2&fid=$3

    Wenn ich nun z.B. einen Album-Namen an die URL-Adresse "galerie/" anhänge, treffen die 2. und 3. RewriteRule auch teilweise zu und irgendwie landen alle 3 Treffer bei "index.php?foto", so dass dort 3Mal ein UPDATE-Query ausgelöst wird. Die richtige Seite wird im Browser aber aufgerufen. (ich sehe nur anhand der Datenbank, dass die Seite mehrfach von mir aufgerufen wurde) Wie kann ich das vermeiden?

    Unsicher bin ich mir auch in folgendem Abschnitt. Auch hier sind im Falle der 2. Regel beide Regeln erfüllt. Ich habe es zwar noch nicht getestet, aber auch hier müsste das selbe Problem, wie oben auftauchen. Wie kann ich das umgehen?
    Code :
    1
    2
    3
    4
    5
    6
    7
    
    # wenn folgender Ordner nach blog/[kategorie] KEINE reine Zahlenfolge ist,
    # an "index.php?blog&catname=" anhängen
    RewriteRule ^blog/([^/]+)/{0,1}$ index.php?blog&catname=$1
     
    # wenn folgender Ordner nach blog/[seite] eine reine Zahlenfolge ist,
    # an "index.php?blog&seite=" anhängen
    RewriteRule ^blog/([0-9]+)/{0,1}$ index.php?blog&seite=$1
    Geändert von Sturmrider (16.11.11 um 19:49 Uhr)
     
    Gruß Sturmi

  2. #2
    Sturmrider Sturmrider ist offline Mitglied Gold
    Registriert seit
    Mar 2006
    Beiträge
    217
    Ups, habe mich im Titel verschrieben... es sollte natürlich Transitivität heißen.
    Des Problems Lösung lautet [L] am Ende jeder RewriteRule. Damit ist die RewriteRule hier zu Ende und es können keine RewriteRules miteinander verkettet werden. Ich habe mich noch einmal durch die Apache-Doku gequält und dabei fest gestellt, dass ich die Lösung eigentlich die ganze Zeit über hatte, aber der Firefox scheinbar so seine Problemchen hat.
    (Ich muss manchmal nach dem ändern der rewriteRules den Server neustarten... vorher tut sich im Firefox nichts mehr, auch Browser-Cache leeren etc. hilft nicht. Im Safari habe ich diese Probleme nicht feststellen können)

    Damit ist meine Frage wohl beantwortet. (auch wenn ich nicht glaube, dass hier niemand eine Antwort gewusst hätte)
     
    Gruß Sturmi

Ähnliche Themen

  1. Hotlinks Vermeiden - Trafficklau Unterbinden - HTACCESS - Apache
    Von Kanisterkopp im Forum Hosting & Webserver
    Antworten: 0
    Letzter Beitrag: 01.08.07, 14:49
  2. Antworten: 0
    Letzter Beitrag: 01.08.07, 14:49
  3. Brokenlink durch .htaccess durschleifen
    Von ronaldo84 im Forum Hosting & Webserver
    Antworten: 2
    Letzter Beitrag: 25.05.07, 22:13
  4. Pixelrand durch Auswahl erweitern vermeiden?
    Von switch im Forum Photoshop
    Antworten: 5
    Letzter Beitrag: 03.03.04, 16:12
  5. starten des scriptes durch htaccess
    Von Lupidor im Forum PHP
    Antworten: 8
    Letzter Beitrag: 21.02.03, 13:57

Stichworte