#redirect #.net-core #webforms
Вопрос:
Я собираюсь перенести интернет-магазин со старых веб-форм на новый сайт .Net Core (.Net 5). Старые URL-адреса имеют очень хороший рейтинг в Google, и я хотел бы иметь возможность сделать постоянное перенаправление со страницы aspx на страницу .net core. И т.д.:
www.mydomain.com/products/great-backpack-1234.aspx
Для
www.mydomain.com/great-backpack
Я считаю, что для этого требуется, чтобы у меня было и то, и другое .net core и сайт aspx работают в одном домене. Возможно ли это? Или у кого-нибудь есть какие-нибудь другие идеи по решению?
С уважением
Ответ №1:
Это, вероятно, не нужно для запуска обоих в одном домене или пространстве. Похоже, все закончится в .aspx, и если вы используете MVC, функцию контроллера для перехвата всех запросов, которые не соответствуют другим маршрутам, а затем проверьте, заканчивается ли она в aspx, это должно сделать за вас. Вы можете поместить его в существующий контроллер, но я лично поместил бы его в новый, чтобы разделить проблемы
public class RedirectController : Controller
{
[Route("{**url}", Order = 999)]
public IActionResult RedirectPage(string url)
{
//Redirect logic based on the URL given, making sure it ends in aspx
}
}
URL-адрес будет отображаться в параметре url в виде строки, и вы можете проверить, заканчивается ли он на aspx, и каково было название страницы, чтобы определить, куда их отправлять. Так что «www.mydomain.com/products/great-backpack-1234.aspx» будет отображаться в параметре url как «продукты/отличный рюкзак-1234.aspx». Обратите внимание, что поле заказа в атрибуте маршрута гарантирует, что оно будет последним, проверенным на соответствие шаблонам, поэтому оно не должно вмешиваться ни в что другое.