Herzlich willkommen im Archiv vom ABAKUS Online Marketing Forum
Du befindest Dich im Archiv vom ABAKUS Online Marketing Forum. Hier kannst Du Dich für das Forum mit den aktuellen Beiträgen registrieren.
GrüßeRewriteEngine on
RewriteRule ^([a-z]+)-([a-z]+)-([0-9a-z_]*)\.html$ $1.php?$2=$3 [NC,QSA,L]
RewriteRule ^([a-z]+)-?\.html$ $1.php [NC,L,QSA]
wäre demnach meine Lösung besser oder ist zu zu allgemein???Caterham hat geschrieben:Der Pattern der Rule sollte so eng wie möglich gefasst werden, die regEx .* oder .+ so oft wie möglich vermienden werden. Der Pattern der RewriteRule wird vor der Condition geprüft.
Grüße
Robert
Die ist sehr allgemein, .* heißt ja 0 bis n beliebige Zeichen. Das ist weiter gefasst, als [a-z]+ 1 bis n Zeichen zwischen a und z. .* ist zwar die einfachtste regEx, aber auch die gefährlichste. Nicht selten führt sie zu unerwünschten Ergebnissen (Endlosschleife etc.).wäre demnach meine Lösung besser oder ist zu zu allgemein???
Code: Alles auswählen
RewriteCond %{REQUEST_FILENAME} /viewforum([0-9]*)-([0-9]*)-([0-9]*).html
RewriteRule (.*) /viewforum.php?f=%1&topicdays=%2&start=%3 [L]
daneben ist das L-Flag auch immer wichtig, oft wird es leider weggelassen. Dann werden darunterliegende Regeln im ersten Durchlauf der .htaccess nicht mehr (um sonst) geprüft. Im 2. Durchlauf werden dann alle Regeln noch einmal durchlaufen (bzw. der Pattern geprüft). Auch deshalb den Pattern der RewriteRule immer so eng wie möglich definieren, damit möglichst wenig Schritte nötig sind, um festzustellen, dass die Substitution der Rule nicht ausgeführt werden soll.RewriteRule ^viewforum([0-9]+)-([0-9]+)-([0-9]+)\.html$ /viewforum.php?f=$1&topicdays=$2&start=$3 [L]