I have got page which I would like to cache using the OutputCache directive. However, I am using a URL rewriter module to direct multiple URLs at this page, each with different contents.
Is there any way to use the cache the output for each URL? There are no other criteria by which I need to vary the cache results.
In the end this was quite simple to fix.
Add the following directive to the page that needs to be cached:
< %@ outputcache duration="600" location="Downstream" varybyparam="none" varybycustom="RawURL" %>
Add this method to the global.asax file
public override string GetVaryByCustomString(HttpContext context, string custom)
{
switch (custom.ToUpper())
{
case "RAWURL":
return context.Request.RawUrl;
default:
return "";
}
}
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With