重定向带有特定部分的URL-ASP.NET MVC

时间:2018-08-06 14:58:54

标签: c# url redirect model-view-controller

我有一个现有页面,其中包含几个问题(例如常见问题),其网址类似

主要帮助网址:sitename.com/help 特定部分的网址:sitename.com/help#topic123

现在,要求已更改,并被告知要使用查询字符串sitename.com?showhelp将/ help(临时)重定向到首页。

我在web.config中使用了重定向规则,该规则在主要帮助页面上正常工作。

Requested URL: sitename.com/help
Redirected to URL: sitename.com?showhelp

问题 当我将特定的主题URL重定向到一个新的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部分

1 个答案:

答案 0 :(得分:1)

使用(#。+)获取多余的片段

<rule name="newhelp" stopProcessing="true">
    <match url="^help(#.+)?" />
    <action type="Redirect" url="?showhelp{R:1}" redirectType="Temporary" />
</rule>