IIS的URL重写规则,用于替换每个页面中的文件夹路径

pat*_*anb 9 asp.net iis url-rewriting

我的网站项目中有超过300页.随着时间的推移,我们创建了一个安全的新服务器.此服务器专门用于网站中的所有图像.

所以这是场景:

所以你可以看到所有的图片都来自~/assets文件夹,但现在我想建立一个规则替换~/assetshttp://static.mysite.com

如何使用重写规则在IIS中实现此目的.

例:

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" />
Run Code Online (Sandbox Code Playgroud)

希望有IIS规则,当找到上面的代码时,用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" />
Run Code Online (Sandbox Code Playgroud)

Pio*_*app 11

您需要在IIS中创建出站规则.规则需要遵循:

  1. 前提条件应该只检查html文件(我使用默认的IsHTML)
  2. 在"匹配内容"中,选择要检查链接的元素
  3. 模式是 ^(.*)/assets/(.*)
  4. 动作属性是http://static.mysite.com/ {R:2}.R:2引用上面正则表达式中的second().单击"测试模式"按钮后,您可以检查所需内容.

符合上述条件的贝娄简单规则:

在此输入图像描述


Sat*_*pal 5

你可以试试这个

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

它将重定向whatever/assets/common/image1.jpgwhatever/common/image1.jpg

更新:

<rule name="assets redirection" stopProcessing="false">
    <match url="^(.*)/(assets)/(.*)" ignoreCase="false" />
    <action type="Redirect" url="static.mysite.com/{R:3}" />
</rule>
Run Code Online (Sandbox Code Playgroud)