【问题标题】:ASP.NET MVC 3 Redirect/route URL back to subdomainASP.NET MVC 3 将 URL 重定向/路由回子域
【发布时间】:2012-11-29 07:31:35
【问题描述】:

我在子域 (www.website.com/foobar) 上有一个站点,它会拉取默认页面视图。由于 MVC 应用程序的性质,此默认页面视图也可以通过默认内容 (www.website.com/foobar/{controller}) 和 (www.website.com/foobar) 的“控制器/操作”URL /{控制器}/{动作})。

为了分析和跟踪,除了原始短网址 (www.website.com/foobar) 之外,我希望这些其他网址中的任何一个重定向回这个较短的网址。

所以... www.website.com/foobar/{controller},当输入或点击书签链接时,应重定向到 www.website.com/foobar

我尝试过使用路由,但无法真正更改 URL 本身。我不确定是否可以通过映射进行更改。

编辑:有人在 IIS7 中使用过 HTTP 重定向吗?我可以从顶层重定向,但似乎无法让重定向在任何视图上起作用。

【问题讨论】:

  • 你有 RESTful url 吗?
  • 这是一个非常小的应用程序,只有两个或三个视图,并且从不使用任何 GET 或 POST URL,但确实在控制器中使用了 post 方法,如果这就是您所指的。我不是 100% 熟悉什么是 RESTful url。
  • 那么,你的问题中的 foobar 指的是控制器动作..对吗?
  • 我会用真实的术语来提供帮助。 www.website.com/Quick-Quote 是我们托管此应用程序的子域。 www.website.com/Quick-Quote/Quote/Index 显示默认视图,因此这个长 url 显示与 www.website.com/Quick-Quote 相同的内容。我希望长网址重定向回短网址。

标签: asp.net-mvc-3 iis-7 asp.net-mvc-routing url-routing


【解决方案1】:

我认为您不能单独使用路由来重定向域。我有一个类似的问题,经过几天的搜索和询问,我最终使用重定向本身来解决这个问题。希望这会有所帮助。

【讨论】:

  • 感谢您的确认。我会支持你,但我还没有足够高的声誉!
【解决方案2】:

我能够通过使用 HTTP 重定向模块解决 IIS 7 中的问题。因为它是一个 MVC 应用程序,所以在视图上设置重定向有点棘手,但这是可能的。我用过这个教程:Creating a redirect in IIS7

编辑:虽然上述解决方案有效,但它往往是不可预测的。我最终通过读取用户在 Quote 控制器的 Index 操作中输入的 URL 来解决它,然后如果我正在寻找的关键字在 URL 中,则重定向。只是 Index 操作开始处的一个简单 if 语句。

【讨论】:

    猜你喜欢
    • 2011-07-03
    • 2011-07-23
    • 1970-01-01
    • 2016-12-01
    • 2017-01-15
    • 2019-07-30
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多