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

Asp.net IIS用于替换每个页面中文件夹路径的URL重写规则,asp.net,iis,url-rewriting,Asp.net,Iis,Url Rewriting,我们有超过300页在我的网站项目。随着时间的推移,我们已经创建了一个安全的新服务器。此服务器专门用于网站中的所有图像 下面是一个场景: 图像的当前实现(在aspx中,在css中) 有时在网页和css中,它是这样指定的 ~/assets/common/image1.jpg string imageUrl= Request.Url.Scheme + "://" + Request.Url.Authority + "/Image/logo/Logo.png"; 我想用这样的东

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

下面是一个场景:

  • 图像的当前实现(在aspx中,在css中)

  • 有时在网页和css中,它是这样指定的

    ~/assets/common/image1.jpg        
    
    string imageUrl= Request.Url.Scheme + "://" + Request.Url.Authority + "/Image/logo/Logo.png";
    
  • 我想用这样的东西

    http://www.static.mysite.com/common/image1.jpg
    
  • 和安全页面

    https://www.static.mysite.com/common/image1.jpg
    
正如您所看到的,所有图像都来自
~/assets
文件夹,但现在我想创建一个规则,将
~/assets
替换为
http://static.mysite.com

如何使用重写规则在IIS中实现这一点

例子: ASPX

希望有IIS规则,当找到上述代码时,将其替换为


您可以试试这个

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

您需要在IIS中创建出站规则。规则将需要以下内容:

  • 前提条件应该只检查html文件(我使用默认的IsHTML)
  • 在“将内容与匹配”中,选择要检查链接的元素
  • 模式是
    ^(.*)/assets/(.*)
  • 操作属性为{R:2}。R:2引用上述正则表达式中的第二个()。单击“测试模式”按钮后,您可以检查所需内容
  • 以下是满足上述要求的简单规则:


    嗯,我想知道你是怎么做到的

    ~/assets/common/image1.jpg        
    
    string imageUrl= Request.Url.Scheme + "://" + Request.Url.Authority + "/Image/logo/Logo.png";
    
    Scheme是您的web方案http或https等。 Authority是您的web域名和端口(如果有)。 然后在这里你的图片url完全

    我已经在ssrs报告服务中使用了这个徽标url,并得到了很好的效果。希望它能为您工作

    欢迎提出意见和查询。
    谢谢。

    我希望通过替换我正在使用godaddy作为主机将其重定向到。那么,我应该把上面的重写放在单个网站的虚拟目录/文件夹中还是放在根目录中?@SnehaJavalkar,这取决于您希望应用规则的级别。您还可以在根级别定义它。如何使用
    web.Config
    配置它,我希望内容文件夹中的所有
    Images
    文件夹、
    css
    js
    指向azure cdn?@stom所有上述更改都在web.Config中可见,以便您可以复制粘贴它们
    <rule name="assets redirection" stopProcessing="false">
        <match url="^(.*)/(assets)/(.*)" ignoreCase="false" />
        <action type="Redirect" url="static.mysite.com/{R:3}" />
    </rule>
    
    string imageUrl= Request.Url.Scheme + "://" + Request.Url.Authority + "/Image/logo/Logo.png";