Sturmrider
Erfahrenes Mitglied
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
):
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?
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
![Wink ;) ;)](https://cdn.jsdelivr.net/joypixels/assets/8.0/png/unicode/64/1f609.png)
Code:
# 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:
# 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
Zuletzt bearbeitet: