I’m using the old 404-rewrite method on a certain site that is tied to IIS6 *.
So if I enter
http://example.com/non-existent/path
it calls my error page like so
http://example.com/catch.aspx?404;http://example.com/non-existent/path
Great.
Except if I call the page with a fragment, like
http://example.com/non-existent/path#with-fragment
I get the same result as above. I can’t find the fragment anywhere:
- Request.Url
- Request.Url.OriginalString
- Request.UrlReferrer
- Request.RawUrl
- headers, server variables, etc
This has come up because I want to resolve paths created by AJAX to their server-side versions.
Is there any way for me to retrieve the original path from my handler?
Thanks.
(*) Please don’t suggest I change platform. Obviously I would if I could.
No, there isn’t.
The portion of URL after # is never passed to the server per HTTP spec. Has nothing to do with platform.
To work with info after # in javascript you should look at Javascript History plugins/functionality. jQuery has history plugin, asp.net ajax and mvc ajax (partial views et al) have that. Mind you, it’s not a very easy thing to implement, you have to get into undo/redo mindset.
It probably won’t work if you are trying to handle 404’s on the server – server doesn’t know that there was something after #. Not sure what you want to do though, 404 handling, or “resolve paths created by AJAX”? What exactly is the goal?