Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

URL Rewrite rule for IIS to replace folder path in everypage

We are having more than 300 pages in my website project. Over the time we have created a new server which is secure. This server is specially used for all the images in website.

So here is the scenario:

  • current implementation for images ( in aspx, in css )

    http://www.mysite.com/assets/common/image1.jpg
    
  • sometimes in webpage and css it is specified like this

    ~/assets/common/image1.jpg        
    
  • would like to use somethig like this.

    http://www.static.mysite.com/common/image1.jpg
    
  • and for secure pages

    https://www.static.mysite.com/common/image1.jpg
    

So as you can see all the images are coming from ~/assets folder BUT now I want to create a rule replacing ~/assets with http://static.mysite.com

How can I achieve this in IIS using rewrite rule.

EXAMPLE:

ASPX

 <img src="/assets/common/image1.jpg" id="ImageId1" alt="Image" width="100" height="100" />

<img src="http://mysite.com/assets/common/image2.jpg" id="ImageId2" alt="Image" width="100" height="100" />

Would like to have IIS rule, when finds above code, replace it with http://static.mysite.com/common/image1.jpg

 <img src="http://static.mysite.com/common/image1.jpg" id="ImageId1" alt="Image" width="100" height="100" />


<img src="http://static.mysite.com/common/image2.jpg" id="ImageId2" alt="Image" width="100" height="100" />
like image 270
patel.milanb Avatar asked Jun 21 '13 13:06

patel.milanb


Video Answer


3 Answers

You need to create Outbound Rule in IIS. Rule will need following:

  1. Precondition should only check html files (I used default IsHTML)
  2. In "Matching the content with" choose elements in which you would like to check links
  3. Pattern is ^(.*)/assets/(.*)
  4. Action properties is http://static.mysite.com/{R:2}. R:2 reffers to second () in above regular expression. You could check what you need after click of "Test pattern" button.

Bellow simple rule which meets above:

enter image description here

like image 151
Piotr Stapp Avatar answered Sep 18 '22 14:09

Piotr Stapp


You can try this

<rule name="assets redirection" stopProcessing="false">
    <match url="^(.*)/(assets)/(.*)" ignoreCase="false" />
    <action type="Redirect" url="{R:1}/{R:3}" />
</rule>

It will redirect whatever/assets/common/image1.jpg to whatever/common/image1.jpg

Update:

<rule name="assets redirection" stopProcessing="false">
    <match url="^(.*)/(assets)/(.*)" ignoreCase="false" />
    <action type="Redirect" url="static.mysite.com/{R:3}" />
</rule>
like image 40
Satpal Avatar answered Sep 20 '22 14:09

Satpal


umm some how you can do like this

string imageUrl= Request.Url.Scheme + "://" + Request.Url.Authority + "/Image/logo/Logo.png";

Scheme is your web Schemes http or https etc. Authority is your web domain name with port if any. Then here it goes your image url completely.

I have used this logo url for the ssrs report service and got fine.Hope it ll work for you.

Comments and queries are welcome . Thank you.

like image 23
Binod Avatar answered Sep 19 '22 14:09

Binod