Umbraco 4.7-用于多个域的缓存宏

Umbraco 4.7-用于多个域的缓存宏,umbraco,Umbraco,使用宏缓存时,您可以 如何按域名进行缓存 我试过这个,但不起作用: <umbraco:Macro Alias="TestMacro" runat="server" Domain='<%=Request["SERVER_NAME"]%>' /> 该网站正在使用Umbraco 4.7。一种方法是使用重写规则将域名添加到查询字符串中。查询字符串的这一部分对站点用户不可见。域名在查询字符串中之后,您可以像往常一样使用查询字符串参数宏缓存技术 下面是一个使用IIS URL重写模块

使用宏缓存时,您可以

如何按域名进行缓存

我试过这个,但不起作用:

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

该网站正在使用Umbraco 4.7。

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

下面是一个使用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参数,否则用户将看到该参数。这对你来说可能不是个问题,但我已经看到了可能的地方

<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>