Как обработать старый URL-адрес aspx с вопросительным знаком '?'в новом веб-сайте MVC без использования IIS - PullRequest
0 голосов
/ 03 ноября 2019

Я переместил свои страницы моего сайта из aspx в mvc. У меня уже есть мои старые ссылки в социальных сетях. После того, как мои изменения в mvc опубликованы, мои старые URL перестают работать, что и является проблемой.

Я использую plesk, и в этом выпуске нет настроек для перенаправления URL. Поэтому я не думаю, что смогу использовать перенаправление в IIS

Мои старые URL: https://www.abc123.com/movie?123

Мои новые URL: https://www.abc123.com/title/123

У меня есть обходной путь в MVCобрабатывать aspx URL, если мой старый URL имеет правильную строку запроса, такую ​​как https://www.abc123.com/movie?id=123

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

Но это не работает с URL https://www.abc123.com/movie?123, так как знак вопроса (?) не может быть использованв конфигах Route.

Пожалуйста, помогите мне решить мою проблему.

1 Ответ

0 голосов
/ 04 ноября 2019

Вот как я решил свою проблему:

В контроллере заголовка я добавил следующий код,

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

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...