c# - 在被 IIS 重定向之前获取原始 URL
问题描述
使用 IIS,我们目前正在重定向 URL。但是要在网站中显示规范 URL 以进行 SEO,我们需要原始 URL。
示例:实际网址:www.example.com/topsellers/mobiles 重定向网址:www.example.com/products ?type=mobiles
IIS 重写规则:
<rule name="url1" stopProcessing="true">
<match url="topsellers/([a-zA-Z0-9]+)" />
<action type="Rewrite" url="products?type={R:1}" />
</rule>
C# 中有没有办法在控制器中获取实际 URL?
我曾尝试使用 C# 中的 HttpContext.Current.Request、HttpRequest 和许多其他对象,但无法访问所需的对象。如果有任何解决方案,任何人都可以帮我解决这个问题吗?
正在使用的技术栈:ASP NET CORE V2.2.1
解决方案
您不会在控制器中找到它,因为规则是从服务器级别开始处理的,一直到站点和子文件夹。URL 重写本身在 IIS 管道中很早就被处理,在大多数与 IIS 相关的功能之前。
但是您可以尝试检查两个事件:PreBeginRequest
全局规则和BeginRequest
您的特定情况。HttpRequest
这些事件中的对象应包含初始 URL。
有关详细信息: IIS URL 重写和 ASP.NET 路由
推荐阅读
- graphql - 允许自定义属性的类型的 graphQL 模式
- scala.js - 扩展 js.native 类会产生 TypeError:没有“new”就不能调用类构造函数
- java - 我从烧瓶中得到“错误 400”返回。当调用来自 java/eclipse 代码时
- python - Python - 如果一个值包含超过 2 个字符,如何拆分并在它之间添加“-”
- android - 如何在materialbutton中定位图标位置
- r - ggplot2中点的线型
- angular - Angular 6,将变量从服务发送到组件
- java - 使用二叉堆构建霍夫曼树
- r - 在面板中获取 4 个条形图 - 运行之前的 stackoverflow 示例时出错
- sql-server - 统计每月添加的唯一用户数