Web.config urlMappings - 适用于本地页面,而不适用于远程页面

时间:2012-11-19 15:46:23

标签: asp.net-mvc redirect web-config iis-7.5

我在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链接都会返回&#34; http://www.somexternalsite.com/teachers"不是有效的虚拟路径。

我在这里缺少什么?

2 个答案:

答案 0 :(得分:0)

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

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

return Redirect("http://www.somexternalsite.com/teachers");

答案 1 :(得分:0)

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

redirect.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/" />

效果很好!