如何在不使用 IIS 的情况下处理新 mvc 网站中带有问号'?'的旧 aspx url



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

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

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

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

如果我的旧URL有合适的查询字符串,我在MVC中有一个解决办法来处理aspx URL,比如https://www.abc123.com/movie?id=123

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

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

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

以下是我解决问题的方法:

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

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

最新更新