0

我有一个在 IIS 7.5 上运行的 MVC4/.Net 4 网站。在我的 web.config 文件中,我的块中有以下内容:

<urlMappings enabled="true">
 <add url="~/2013calendar" mappedUrl="~/CustomerService/RequestPocketCalendar" />
 <add url="~/teachers" mappedUrl="http://www.somexternalsite.com/teachers/" />
</urlMappings>

本地重定向都很好,但是任何从站点重定向的东西,例如上面示例中的 /teachers 链接返回“http://www.somexternalsite.com/teachers”都不是有效的虚拟路径。

我在这里想念什么?

4

2 回答 2

0

如果我没记错的话,mappedUrl 字段是相对于应用程序根目录的路径。因此,“http://www.somexternalsite.com/teachers/”是无效的。

如果您想将其配置为重定向,我只需在您的根控制器中创建一个“教师”操作,然后使用以下内容:

return Redirect("http://www.somexternalsite.com/teachers");
于 2012-11-19T20:46:11.223 回答
0

好吧,我最终创建了一个页面来处理外部重定向,如下所示:

重定向.aspx

<%@ Page Language="C#" %>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">

<script runat="server">
void Page_Load(object sender, EventArgs e)
{
    var page = Request.QueryString["page"];
    Response.Redirect("http://"+page);
}
</script>

因此,在我的 web.config 中,我有如下引用的外部文件:

<add url="~/teachers" mappedUrl="~/redirect.aspx?page=www.somexternalsite.com/teachers/" />

效果很好!

于 2012-11-19T21:35:57.170 回答