我的网站项目中有超过300页。随着时间的推移,我们创建了一个安全的新服务器。此服务器专门用于网站中的所有图像。
所以这是场景:
图像的当前实现(在aspx中,在css中)
http://www.mysite.com/assets/common/image1.jpg
有时候在网页和css中就像这样指定
~/assets/common/image1.jpg
想要使用像这样的东西。
http://www.static.mysite.com/common/image1.jpg
和安全页面
https://www.static.mysite.com/common/image1.jpg
因为您可以看到所有图片都来自~/assets
文件夹但现在我想创建一个用~/assets
替换http://static.mysite.com
的规则
如何使用重写规则在IIS中实现此目的。
<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" />
想要使用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" />
答案 0 :(得分:10)
您需要在IIS中创建出站规则。规则需要遵循:
^(.*)/assets/(.*)
符合上述条件的贝娄简单规则:
答案 1 :(得分:5)
你可以试试这个
<rule name="assets redirection" stopProcessing="false">
<match url="^(.*)/(assets)/(.*)" ignoreCase="false" />
<action type="Redirect" url="{R:1}/{R:3}" />
</rule>
它会将whatever/assets/common/image1.jpg
重定向到whatever/common/image1.jpg
更新
<rule name="assets redirection" stopProcessing="false">
<match url="^(.*)/(assets)/(.*)" ignoreCase="false" />
<action type="Redirect" url="static.mysite.com/{R:3}" />
</rule>
答案 2 :(得分:2)
嗯,你可以这样做怎么做
string imageUrl= Request.Url.Scheme + "://" + Request.Url.Authority + "/Image/logo/Logo.png";
Scheme是您的网站方案http或https等。 权限是您的网络域名,如果有的话。 然后在这里它完全是你的图像网址。
我已将此徽标网址用于ssrs报告服务并且很好。希望它能为您工作。
欢迎提出意见和质询。 谢谢。