2012-11-19 44 views
0

我有一个在IIS 7.5上运行的MVC4/.Net 4网站。在我的web.config文件我已经在我的块如下:Web.config urlMappings - 适用于本地页面,不适用于远程页面

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

本地重定向所有工作的伟大,但任何被重定向过的部位,如/老师在上面的例子返回链接“HTTP ://www.somexternalsite.com/teachers“不是有效的虚拟路径。

缺少什么我在这里?

回答

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

很好用!

0

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

如果你想配置此重定向,我只想创造你的根控制器中的“教师”的动作,然后使用以下命令:

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

你是正确的,它是相对于根...但你是什么意思,硬编码到列表中? – cardiac7

+0

我以为这是为了别的东西,没有仔细看:P。更新与修复。 – TNCodeMonkey

+0

出于好奇,为什么不使用RouteConfig文件中的? – TNCodeMonkey

相关问题