What is the difference between Request.RawUrl
and Request.Url
in ASP.NET?
What is the difference between Request.RawUrl
and Request.Url
in ASP.NET?
No one seems to have mentioned that it shows the Raw URL actually received by IIS, before any manipulation may have happened sending it around IIS or your file system with URL rewriting for example.
Say you have set an error page at /error
in an MVC app and you set your webconfig to replace error pages with your custom error page at that location. In this way when getting an error at /faultypage
, the user will get the page at /error
but the url in your browser's address bar will still say www.mysite.com/faultypage
—this is a transfer, or a rewrite.
Now on your error controller if you are to take a peek at Request.Url
, it will be something like www.mysite.com/error
and Request.RawUrl
would say (more usefully?) /faultypage
which is the user's actual request not the page that is currently being executed.