IIS Rewrite Rules

thron

Cadet 3rd Year
Registriert
März 2017
Beiträge
60
Hallo an Alle,

habe mir gerade eine Rewrite Rule im IIS erstellt und diese schein auch soweit zu funktionieren. Ich habe folgendes geschrieben und bin mir bei einer Sache nicht sicher.

Bei Add Inbound Rule habe ich:

Pattern: tiles/europe/([0-9]+)/(.*) ausgeschrieben (tiles/europe/5/32/335.png)

Bei Rewrite URL:

http://192.168.178.160/geo/map/osm.aspx?ID={R:1}/{R:2}

somit müsste ja rauskommen

http://192.168.178.160/geo/map/osm.aspx?ID=5/32/335.png

Was bedeutet das Plus bei ([0-9]+), ich habe schon versuche auf der Microsoftseite es zu verstehen aber ich kappiere es einfach nicht :-(

https://docs.microsoft.com/en-us/ii...ting-rewrite-rules-for-the-url-rewrite-module

Oder wäre ein andere Patter da besser. Ich brauche mal einen Tipp muss endlich mal ein Erfolgserlebnis feiern. Hänge so schon lange an dem Thema.

Viele Dank schon jetzt im Voraus und Grüße an Alle.
 
() beschreibt eine Gruppe von Zeichen.
[] beschreibt eine Auswahl eines Zeichens.
+ heißt, der vorangestellte Ausdruck muss beliebig oft, aber mindestens einmal vorkommen
* heißt, der vorangestellte Ausdruck muss beliebig oft vorkommen (auch null mal möglich).
. ist ein Platzhalter für ein beliebiges Zeichen. Aufpassen bei MS-Regex: Zeilenumbrüche sind nicht beliebig.


Alles nachlesbar hier: https://docs.microsoft.com/de-de/do...s/regular-expression-language-quick-reference

Für weitere Hilfe die komplette Rule (xml) hier schreiben, dazu die URL, die du aufrufst und die URL, die es werden soll.
 
Also ausgeschrieben:

Die URL wird aufgrufen

https://192.168.178.151/tiles/europe/5/32/335.png

Diese soll es werden:

http://192.168.178.160/geo/map/osm.aspx?ID=5/32/335.png

Habe hier mal die Rule:

<rewrite>
<rules>
<rule name="ReverseProxyInboundRule2" stopProcessing="true">
<match url="tiles/europe/([0-9+])/(.*)" />
<action type="Rewrite" url="192.168.178.160/geo/map/osm.aspx?ID={R:1}/{R:2}" />
</rule>
</rules>
</rewrite>

Passt das so. Irgendwie ist die Karte in der Webanwendung sehr langsam und vor allem läd sie nur bis Zoomstufe 10!?
 
Zuletzt bearbeitet:
Nein, das Plus ist syntaktisch falsch. Dort MÜSSTE es escaped werden, das willst du aber gar nicht.
Was du jetzt matchst:
R:1 - 5
R:2 - 32/335.png
Ist das so Absicht?

Vermutlich sinnvoller wäre als match url:
Code:
tiles/europe/([0-9]+)/([0-9]+)/([0-9]+\.[a-zA-Z]+)
und die rewrite-URL dann so:
Code:
192.168.178.160/geo/map/osm.aspx?ID={R:1}/{R:2}/{R:3}

Für diese Regeln wären deine Matches für https://192.168.178.151/tiles/europe/5/32/335.png folgende:
R:1 - 5
R:2 - 32
R:3 - 335.png

Ob du das so matchen willst, musst du wissen. Aber ein Zahlen-Match sieht grundsätzlich so aus: [0-9]+
Bedeutet: Aus den Zeichen 0-9 werden mindestens 1 Treffer, jedoch so viele wie möglich gematcht. Das noch als Gruppe ist dann ([0-9]+). Anstelle von [0-9] kann man auch \d matchen, wenn man das schöner findet. /d heißt "Dezimalziffer".
 
Hallo und Danke für die Antwort,

passiert bei Deiner Lösung im Vergleich zu meiner Lösung etwas anderes oder ist diese nur von der Syntax her schöner? Verstehe es noch net ganz?

Das Ergebnis ist ja das gleiche, oder?

Viele Grüße und Danke für die Hilfe....
 
Hat jemand noch eine Ahnung warum bei Zoomstufe 10 nicht weiter geht?
 
Zurück
Oben