【发布时间】:2019-01-13 14:01:00
【问题描述】:
我有一个包含几个问题(如常见问题解答)的现有页面,其 URL 类似于
主要帮助网址:sitename.com/help 特定部分的 URL:sitename.com/help#topic123
现在要求已更改,我被告知将 /help 重定向(临时)到主页,查询字符串为 sitename.com?showhelp。
我在 web.config 中使用了一个重定向规则,该规则在主帮助页面上运行良好。
Requested URL: sitename.com/help
Redirected to URL: sitename.com?showhelp
问题 当我将特定主题 URL 重定向到新主题时,它仍会在 URL 末尾显示 #topic123,例如
Requested URL: sitename.com/help#topic123
Redirected to URL: sitename.com?showhelp#topic123
Required URL: sitename.com?showhelp
使用的规则:
<rule name="newhelp" stopProcessing="true">
<match url="^help" />
<action type="Redirect" url="?showhelp" redirectType="Temporary" />
</rule>
我也尝试过从控制器操作方法重定向,但这并不能解决问题。我无法阅读 Request.Url 中的#topic123 部分
【问题讨论】:
-
这是一个URI fragment,仅供浏览器使用。它出现在那里是因为一些 Javascript 代码把它放在那里。它从未传递给服务器。
-
那么如果我在浏览器sitename.com/help#topic123中请求,不应该去服务器吗?
-
阅读链接。它表示任何浏览器都不会将片段发送到服务器。链接不应包含片段,除非这是一个旨在在调用服务器之前在浏览器上处理片段的 SPA。例如,使用自己的控制器处理请求并调用后端服务的 Angular 或 React 应用程序
标签: c# url redirect model-view-controller