首页 > 解决方案 > 如何处理带有问号“?”的旧 aspx url 在不使用 IIS 的新 mvc 网站中

问题描述

我已将我的网站页面从 aspx 移动到 mvc。我已经在社交媒体上有了我的旧链接。在我的 mvc 更改发布后,我的旧 URL 停止工作,这正是问题所在。

我正在使用 plesk,这个版本没有任何重定向 URL 的设置。所以我认为我不能在 IIS 中使用重定向

我的旧网址:https ://www.abc123.com/movie?123

我的新网址:https ://www.abc123.com/title/123

如果我的旧网址具有正确的查询字符串,例如https://www.abc123.com/movie?id=123 ,我在 MVC 中有解决方法来处理 aspx URL

        [Route("movie")]
        [Route("Title/{id}")]
        public ActionResult Index(int id)
        {
        }

但这不适用于 URL https://www.abc123.com/movie?123,因为问号 (?) 不能在路由配置中使用。

请帮助我处理我的这个问题。

标签: c#asp.net-mvcredirect

解决方案


这是我解决问题的方法:

在标题控制器中,我添加了以下代码,

protected override void OnActionExecuting(ActionExecutingContext filterContext)
        {
            base.OnActionExecuting(filterContext);
            if (((HttpRequestWrapper)Request).CurrentExecutionFilePath.ToLower() != "/movie") {return; }
            var id = Request.QueryString[null];
            int titleid;
            if (!int.TryParse(id, out titleid)) return;
            Response.RedirectPermanent("~/title/" + titleid);
        }

感谢 AA


推荐阅读