Asp.net IIS是否在自定义错误页上丢弃URL片段?

Asp.net IIS是否在自定义错误页上丢弃URL片段?,asp.net,iis-6,url-rewriting,Asp.net,Iis 6,Url Rewriting,我在与IIS6*相关的某个站点上使用了旧的404重写方法 所以如果我进去 http://example.com/non-existent/path 它这样调用我的错误页面 http://example.com/catch.aspx?404;http://example.com/non-existent/path 太好了 除非如果我用片段调用页面,如 http://example.com/non-existent/path#with-fragment 我得到了与上面相同的结果。我在任何地方都

我在与IIS6*相关的某个站点上使用了旧的404重写方法

所以如果我进去

http://example.com/non-existent/path
它这样调用我的错误页面

http://example.com/catch.aspx?404;http://example.com/non-existent/path
太好了

除非如果我用片段调用页面,如

http://example.com/non-existent/path#with-fragment
我得到了与上面相同的结果。我在任何地方都找不到碎片:

  • 请求.Url
  • Request.Url.OriginalString
  • Request.urlReferer
  • Request.RawUrl
  • 标题、服务器变量等
出现这种情况是因为我想将AJAX创建的路径解析为服务器端版本

我有没有办法从处理程序中检索原始路径

谢谢

(*)请不要建议我换站台。如果可以的话,我当然会的。

不,没有。 根据HTTP规范,#之后的URL部分永远不会传递给服务器。与平台无关

要在javascript中使用“后信息”,您应该查看javascript历史插件/功能。jQuery有历史插件,asp.NETAjax和MVCAJAX(局部视图等)有历史插件。提醒你,这不是一件很容易实现的事情,你必须进入撤销/重做的心态


如果您试图在服务器上处理404,则可能无法工作-服务器不知道在#之后发生了什么。不确定您想做什么,404处理,还是“解析AJAX创建的路径”?目标到底是什么?

哇。。。你说得对。我以前从未在任何一页上尝试过这样做。目标是处理由客户端导航创建的URL,如example.com/somepage#!另一页。例如,Facebook就是这样做的。如果您输入该URL,它将自动重定向到其他页面并删除该片段。我没有意识到这是在客户端处理的(所以严格来说不是重定向)!语法是谷歌特有的-。这告诉谷歌它可以把#!有什么东西在牢房里