Ich habe einige URL-Redirects implementiert, die auf IIS/ColdFusion kombiniert sind, funktioniert gut, aber ich bin nicht in der Lage, mit einigen Regex-Pattern umzugehen, um nicht benötigte Redirects zu reduzieren.Verkettete URL-Redirects reduzieren [IIS/Regex/ReWrite]
Gegenwärtig verarbeitet IIS nur eine einzige Weiterleitung (höchstens), wenn innerhalb der URL ein Vorlagenname gefunden wird. z.B. IIS leitet eine URL wie
http://example.com/index.cfm/something/pretty/?page=1
zu
http://example.com/something/pretty/?page=1
Zum Beispiel ist es entfernt nur den Vorlagennamen aus der URL zu verlassen folgenden es intakt alles. Die obige finale URL ist gemäß meiner Bewerbung gültig.
Wenn jedoch ein abschließender Schrägstrich (/) in der finalen URL nicht gefunden wird, verarbeitet die Anwendung "ColduFusion" diesen Fall und fügt am Ende einen Schrägstrich an und leitet dann an eine URL weiter, die mit einem Schrägstrich endet. /) vor einer Abfragezeichenfolge (falls vorhanden). Es funktioniert mit einiger Logik, um PATH_INFO und QUERY_STRING intakt zu erhalten. Aber das verursacht in der folgenden Situation tatsächlich mehrere Weiterleitungen.
[INIT] http://example.com/index.cfm/sport/badminton
[Redirect 1] [IIS-301] http://example.com/sport/badminton
[Redirect 2] [CF-301] http://example.com/sport/badminton/
Nun, da ich all dies in IIS zu handhaben wollen und decken alle Fälle in einer Regel, bin ich nicht in der Lage zu machen (oder zu finden) ein RegexMuster, die es tun könnte.
Aktuelle IIS Redirect-Muster
^index.cfm/(.*)$
ich verschiedene diejenigen zusammen mit den einfachsten
^index.cfm/(.*[^/])$
Aber es bezieht sich nicht auf eine URL mit einem QUERY_STRING versucht haben. Sie können mich als naiv bezeichnen, wenn ich reguläre Ausdrücke mache.
Update 1: fand ich, dass die richtige Bezeichnung für das Problem ist „Chained“ Umleitungen und einen Artikel in moz.com gefunden, die Art ist das gleiche Problem Handling ich oben erwähnt habe. Ich denke, es sollte funktionieren, und während ich daran arbeite, die Regeln auf meinem Server zu ändern, dachte ich, ich sollte diese Frage mit etwas aktualisieren, das ich für andere gefunden habe, die ein solches Problem haben könnten. Ich werde dies aktualisieren, sobald ich diese Lösung verwenden kann, um das Problem an meiner Seite zu beheben.