php非mvc路由,asp.net-mvc – 旧版PHP URL不会在MVC中调用自定义路由

在将PHP网站迁移到ASP.NET MVC后,为防止404错误,设置了自定义路由处理遗留URL。该路由系统在本地工作正常,但部署到IIS6服务器时遇到问题,导致404错误,并显示IIS的默认错误页面,而不是自定义页面。怀疑可能是IIS无法处理PHP页面,但未找到解决方案。所有其他页面和路由功能正常。
摘要由CSDN通过智能技术生成

我们最近用asp.net MVC网站替换了一个旧的php网站.为了防止来自搜索引擎中遗留网址的404错误,我们通过-

http://www.mikesdotnetting.com/Article/108/Handling-Legacy-URLs-with-ASP.NET-MVC设置了自定义遗留路由系统

代码在我的本地计算机上运行,​​并重定向到正确的路由;然而,实时服务器发出404.奖金问题/线索,404不是我们的自定义404页面,而是iis 6默认页面.

代码:

public class LegacyUrlRoute: RouteBase

{

// source: http://www.mikesdotnetting.com/Article/108/Handling-Legacy-URLs-with-ASP.NET-MVC

public override RouteData GetRouteData(HttpContextBase httpContext)

{

const string status = "301 Moved Permanently";

var request = httpContext.Request;

var response = httpContext.Response;

var legacyUrl = request.Url.ToString();

var newUrl = "";

if (legacyUrl.Contains(".php"))

{

newUrl = "/";

if (legacyUrl.Contains("support/mailfilter.php"))

newUrl = "/support/";

else if (legacyUrl.Contains("/support/default.php"))

newUrl = "/support/";

else if (legacyUrl.Contains("/business/default.php"))

newUrl = "/services/";

else if (legacyUrl.Contains("/residential/default.php"))

newUrl = "/services/";

else if (legacyUrl.Contains("/about/default.php"))

newUrl = "/home/about/";

else if (legacyUrl.Contains("/jobs.php"))

newUrl = "/jobs/";

else if (legacyUrl.Contains("/support/links.php"))

newUrl = "/support/";

else if (legacyUrl.Contains("/support/settings.php"))

newUrl = "/support/";

else if (legacyUrl.Contains("/default.php"))

newUrl = "/";

response.Status = status;

response.RedirectLocation = newUrl;

response.End();

}

return null;

}

public override VirtualPathData GetVirtualPath(RequestContext requestContext, RouteValueDictionary values)

{

return null;

}

}

注意:

我们怀疑问题是iis无法提供php页面,但我似乎无法找到iis中的设置来解决问题.就好像请求永远不会出现控制器代码,错误或其他情况.所有其他页面/路由工作完美.

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值