Umbraco 4.7 - 为多个域缓存宏

时间:2014-05-13 04:19:39

标签: umbraco

使用宏缓存时,您可以cache it by QueryString parameter,例如

<umbraco:Macro Alias="TestMacro" runat="server" TestParam="[@MyQueryStringKey]" />

如何按域名缓存?

我试过了,但它没有用:

<umbraco:Macro Alias="TestMacro" runat="server" Domain='<%=Request["SERVER_NAME"]%>' />

该网站正在使用Umbraco 4.7。

1 个答案:

答案 0 :(得分:0)

一种方法是使用重写规则将域名添加到查询字符串中。查询字符串的这一部分对于站点的用户是不可见的。在域名在查询字符串中之后,您可以像往常一样使用查询字符串参数技术的宏缓存。

以下是使用IIS URL重写模块的示例。

<system.webServer>
    <rewrite>
        <rules>
            <rule name="Append domain to query string" stopProcessing="false">
                <match url=".*" />
                <action type="Rewrite" url="{R:0}?currentDomain={HTTP_HOST}" appendQueryString="true" />
            </rule>
        </rules>
    </rewrite>
</system.webServer>

然而,这样做可能会产生意想不到的副作用。特别是,如果您正在构建一个url回到同一页面并且查询字符串参数已更改(分页,排序,过滤等),则需要注意不要包含currentDomain参数,否则它将对用户可见。这对你来说可能不是一个问题,但我已经看到了它会出现的地方。