asp.net-mvc – 旧版PHP URL不会在MVC中调用自定义路由
发布时间:2020-12-16 09:52:56 所属栏目:asp.Net 来源:网络整理
导读:我们最近用asp.net MVC网站替换了一个旧的php网站.为了防止来自搜索引擎中遗留网址的404错误,我们通过- http://www.mikesdotnetting.com/Article/108/Handling-Legacy-URLs-with-ASP.NET-MVC设置了自定义遗留路由系统 代码在我的本地计算机上运行,??并重定向
我们最近用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中的设置来解决问题.就好像请求永远不会出现控制器代码,错误或其他情况.所有其他页面/路由工作完美. 解决方法
找到了答案.
问题是由于如果扩展名是.php,iis永远不会启动asp.net服务. 解决方案是转到属性>主目录>配置,找到.php扩展名,将可执行路径更改为asp.net路径,并将其限制为“GET,HEAD,POST,DEBUG”或您喜欢的任何内容.我最初选择了“All Verbs”单选按钮,但是没有用. 虽然该页面没有特别提出我想出的答案,但this page确实有所帮助. (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |
相关内容
- 使用Linq表达式在扩展方法中有趣(?)
- asp.net-mvc – 将SignalR与Azure表存储一起使用 – 什么架
- asp.net – 清除AjaxToolkit AsyncFileUpload控件
- asp.net – Visual studio – 在浏览器中查看时使用子文件夹
- asp.net-core-mvc – 如何在启动时初始化应用程序状态并从M
- asp.net – ASP MVC – 扭转一个foreach
- [你必须知道的.NET] 第七回:品味类型---从通用类型系统开始
- asp.net-membership – 如何使用Microsoft.Web.WebPages.OA
- asp.net – 如何将gridview列绑定到子类值?
- asp.net – 使用mvc-mini-profiler 1.9“无法确定提供程序名
推荐文章
站长推荐
热点阅读