2014-05-13 70 views
1

使用宏緩存時,您可以使用cache it by QueryString parameter,例如。Umbraco 4.7 - 爲多個域緩存宏

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

如何你的域名緩存?

我試過,但它不工作:

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

的網站使用一把umbraco 4.7。

回答

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參數,否則它將變得對用戶可見。這對你來說可能不是問題,但我已經看到了它的位置。