Remove multiple forward slashes

前端 未结 3 1921
遥遥无期
遥遥无期 2021-01-12 19:33

I\'ve noticed that with .NET MVC sites, you\'re able to hit URLs with multiple forward slashes, for example:

http://www.example.com//category
http://www.exam         


        
3条回答
  •  -上瘾入骨i
    2021-01-12 19:51

    In the end, I have resorted to using a code behind redirect to get it working.

    The issues I was having using the IIS URL Rewrites was due to the way IIS caches the redirects. When I disabled caching completely, as WouterH suggested, it worked. However, I'm not comfortable disabling caching in this way as it could introduce performance issues.

    My fix was to use a code behind redirect in the Global.asax.cs file:

    protected void Application_BeginRequest(object sender, EventArgs e)
    {
        string requestUrl = Request.ServerVariables["REQUEST_URI"];
        string rewriteUrl = Request.ServerVariables["UNENCODED_URL"];
        if (rewriteUrl.Contains("//") && !requestUrl.Contains("//"))
            Response.RedirectPermanent(requestUrl);
    }
    

    I would have liked to use IIS URL Rewrite to get this working, unfortunately I didn't have the time to continue down that line.

    Interestingly, the below method did work, however, the HTTP_X_REWRITE_URL is added by the Helicon ISAPI Rewrite which I'm running locally, but is not available on our production server.

    
      
        
          
          
          
            
          
        
      
    
    

提交回复
热议问题