Adnan Zameer
Adnan Zameer

Reputation: 782

IIS URL Rewrite rule to replace part of the URL

I am new to the IIS Rewrite rule and trying to create a rule to replace part of url

e.g.www.abc.com/assets/global/xyz.jpg

should redirect to www.abc.com**/en/globalassets/**assets/global/xyz.jpg

I fiddle around with the following rule but no success

<rule name="url replace">
<match url="^(.com/assets/global/)" />
<action type="Rewrite" url=".com/en/globalassets/assets/global/{R:2}" />
</rule>

Upvotes: 0

Views: 3004

Answers (1)

Brando Zhang
Brando Zhang

Reputation: 27962

According to your description, I have tested on my side , you could use urlrewite rule as below:

<rule name="rule1" enabled="true" stopProcessing="true">
                    <match url="assets/global/(.*)" />
                    <conditions>
                        <add input="{REQUEST_URI}" pattern="en/globalassets" negate="true" />
                    </conditions>
                    <action type="Redirect" url="http://{domain}/en/globalassets/assets/global/{R:1}" />
                </rule>

Firstly, we couldn't add value like **.com in match url, because this part could only catch path of the url.

You could see this is a url structure:

http(s)://httphost/path?querystring.

You could only get it in conditions tag but not pattern.

Then you should add condition to check the request URL match "en/globalassets" or not to avoid running redirect rule once and once again.

Upvotes: 3

Related Questions