Installed a Redirect manager module for some client"s sitecore, but it doesn"t handle multiple sites so I had to customize it to support multiple sites.
After that, local and testing deployments went well, everything were working perfectly . But then it doesn"t redirect at all on one of the sites when I deployed to Staging.
After some digging, I found that the module is using HttpContext.Current.Cache, which can"t be shared across different App Domain. And this sitecore instance has 2 sites. On local and testing, they share the same app domain, however on Staging it"s using different ones, and on production there"s even one more app domain only for sitecore client.
So I have updated the code to use System.Runtime.Cahcing, solved the problem. Lots of examples online, I won"t bother about showing code here. It"s just 2 things I want to point out. First, use MemoryCahce.Default, Second, Don"t use Add, it doesn"t override. use Set.