gpt4 book ai didi

iis-7 - 如何使用 IIS7 修复 CSS 文件内链接的 URL 重写

转载 作者:行者123 更新时间:2023-12-04 06:45:09 25 4
gpt4 key购买 nike

我正在尝试为家里的 friend 设置代理服务器。我目前正在关注网站上的教程 (http://blogs.iis.net/carlosag/archive/2010/04/01/setting-up-a-reverse-proxy-using-iis-url-rewrite-and-arr.aspx),但我遇到了一个奇怪的问题。

我尝试将/pandora 重定向到 www.pandora.com,但 CSS 文件中的链接没有改变。此外,它们仍然链接到 localhost/img/.. 路径。它们应该被重定向到 localhost/pandora/img/.. 路径。

第一个网页的片段

<link rel="shortcut icon" href="/pandora/favicon.ico" type="image/x-icon" />
<link rel="icon" type="image/ico" href="/pandora/favicon.ico" />

<meta name="viewport" content="width=device-width, initial-scale=1.0">

<link rel="stylesheet" href="css/compiled.css?v=95845013">
<link id="valanceStyle" rel="stylesheet" type="text/css" href="/pandora/static/valances/pandora/default/design.css"/>

你们能帮我解决这个问题吗?

最佳答案

可以通过结合 ARR 的出站重写规则来执行此操作。以下规则应该这样做:

<system.webServer>
<rewrite>
<outboundRules>
<rule name="Rewrite image URLs in CSS response" preCondition="IsCSS">
<match pattern="localhost/img/" />
<action type="Rewrite" value="localhost/pandora/img/" />
</rule>
<preConditions>
<preCondition name="IsCSS">
<add input="{RESPONSE_CONTENT_TYPE}" pattern="text/css" />
</preCondition>
</preConditions>
</outboundRules>
</rewrite>
</system.webServer>

您当然应该用正确的域名替换 localhost。如果您从不同的域名重写,则匹配标签应包含您要替换的域名,而操作标签应包含您要替换的域名。

由于 CSS 不是 HTML,因此您不能使用 URL 重写模块的标签过滤功能。因此它只能对 CSS 文件的全部内容进行正则表达式匹配,这可能会占用大型 CSS 文件的 CPU 密集型。如果您知道需要替换多少个 URL,您可以添加 occurrences="x" <match> 的属性标记来限制 URL 重写模块必须查找的匹配数。还可以尝试将 CSS 规则移动到 CSS 文件的顶部。例如。:

<action type="Rewrite" value="localhost/pandora/img/" occurrences="3" />

您还可以在 IIS 中启用用户模式缓存并添加属性 rewriteBeforeCache="yes"<outboundRules>标记让 IIS 缓存重写的内容。例如。:

<outboundRules rewriteBeforeCache="yes">

更多关于出站重写规则的有用信息和提示可以在 this blog post 中找到。 .

关于iis-7 - 如何使用 IIS7 修复 CSS 文件内链接的 URL 重写,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8653399/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com