public RewriteContext(string virtualDirectory, bool rebaseClientPath)
                {
                    ctx = HttpContext.Current;
                    if (ctx == null)
                    {
                        return;
                    }

                    this.rebaseClientPath = rebaseClientPath;

                    string newVirtualPath       = WebUtils.GetVirtualDirectory(virtualDirectory);
                    string currentFileDirectory = WebUtils.GetVirtualDirectory(ctx.Request.FilePath);

                    // only switch path if necessary
                    if (string.Compare(newVirtualPath, currentFileDirectory, true) != 0)
                    {
                        originalPath = ctx.Request.Url.PathAndQuery;
                        string newPath = newVirtualPath + "currentcontext.dummy";

                        ctx.RewritePath(newPath, rebaseClientPath);

                        #region Instrumentation

                        if (log.IsDebugEnabled)
                        {
                            log.Debug("rewriting path from " + currentFileDirectory + " to " + newPath + " results in " + ctx.Request.FilePath);
                        }

                        #endregion
                    }
                }