C# 动态检测requstURI+;ASP.NET内核
我正在使用web.config使用.Net Core设置一些重定义规则C# 动态检测requstURI+;ASP.NET内核,c#,url-redirection,detect,asp.net-core-1.1,request-uri,C#,Url Redirection,Detect,Asp.net Core 1.1,Request Uri,我正在使用web.config使用.Net Core设置一些重定义规则 <rule name="About Page" stopProcessing="true"> <match url="about.aspx" /> <action type="Redirect" url="/Home/About" redirectType="Permanent" /> </rule> ... 但是它检测重定向的uri(www.test
<rule name="About Page" stopProcessing="true">
<match url="about.aspx" />
<action type="Redirect" url="/Home/About" redirectType="Permanent" />
</rule>
...
但是它检测重定向的uri(www.test.com/Home/About),而不是最初键入的URL(www.test.com/About.aspx)
我在HomeController
,IActionResult
About
方法中使用以下代码
using (HttpRequestMessage request = new HttpRequestMessage(HttpMethod.Head, uri))
HttpRequestMessage
的requestUri
参数目前不是动态的,因此它无法检测用户在URL中输入的内容
非常感谢您的帮助。为了更加清晰,让我们描述一下HTTP请求流:
http://www.test.com/about.aspx
http://www.test.com/Home/About
位于位置标题中http://www.test.com/Home/About
http://www.test.com/about.aspx
。这就是为什么您无法在服务器端获取原始url的原因
如果您的应用程序逻辑需要关于初始url的信息,我在这里看到两个选项:
http://www.test.com/Home/About?orig_url=http://www.test.com/about.aspx
您必须使用新模板更新重定向规则,并在ASP.Net核心应用程序中调整路由选择更适合您的方法。希望这会有所帮助。解释得很好。非常感谢你。
using (HttpRequestMessage request = new HttpRequestMessage(HttpMethod.Head, uri))