asp.net-mvc - url重写后如何知道原始url?

标签 asp.net-mvc iis-7 url-rewriting

我有 url 重写规则,将 www.domain2.com 重定向到 domain1.com 根目录下的子文件夹(我们称此文件夹为子项目)。在我的 Controller 中,我需要构造一个指向原始未修改路径的 URL,但 Request.Url 属性(如 AbsoluteUri 或 LocalPath)始终包含子项目子文件夹。

换句话说,如果用户输入:

www.domain2.com/controller/action

urlrewrite 使它:
www.domain1.com/subproject/controller/action

我希望重建原始网址:
www.domain2.com/controller/action

我可以对从 url 中删除子项目进行硬编码,并以 domain2 开始 url,但我需要一段通用代码,因为这个 url 重建将在一个可重用的库中。 domain2 可能在我的应用程序的设置中,但是子文件夹呢?

作为引用,这里是重写规则:
<rewrite>
    <rules>
        <rule name="Redirect to subproject">
            <match url=".*" />
            <conditions>
                <add input="{HTTP_HOST}" pattern="^(www.)?domain2.com" />
                <add input="{PATH_INFO}" pattern="^/subproject/" negate="true" />
            </conditions>
            <action type="Rewrite" url="\subproject\{R:0}" />
        </rule>
    </rules>
</rewrite>

谢谢

最佳答案

您应该可以在 Request.RawUrl 中找到它.

关于asp.net-mvc - url重写后如何知道原始url?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3991552/

相关文章:

asp.net-mvc - 在 MVC4 上使用 HttpClient 进行异步调用

c# - Asmx Web 服务有时不会响应

asp.net - 使用 IIS 7 Url Rewrite Module 时的自定义 404 页面

.htaccess - htaccess 重写排除不起作用

.htaccess - 配置文件系统的重写规则

c# - mvc 操作无效参数给出 argumentexception 500 而不是 404

asp.net-mvc - 如何在 ASP.Net MVC4 中创建自定义 web.config?

asp.net-mvc - MVC - 一次性创建对象和相关对象

iis-7 - 虚拟目录的 IIS 重定向 url

iis - applicationHost.config 中是否有替代 configSource 的方法?