Как сделать, что бы при неверном url происходила переадресация на главную страницу ? Я пытаюсь реализовать это добавлением в web.config :
<customErrors mode="On" defaultRedirect="~/uploadController/Index">
<error statusCode="404" redirect="~/uploadController/Index" />
</customErrors>
Но все равно получаю страницу с ошибкой при неправильном адресе :
HTTP 404. The resource you are looking for (or one of its dependencies) could have been removed, had its name changed, or is temporarily unavailable. Please review the following URL and make sure that it is spelled correctly.
UPD RouteConfig :
public static void RegisterRoutes(RouteCollection routes)
{
routes.MapRoute(
name: "Default",
url: "{controller}/{action}/{id}",
defaults: new { controller = "Home", action = "Index", id = UrlParameter.Optional }
);
routes.MapRoute("NotFound",
"{*url}",
new { controller = "uploadController", action = "Index" }
);
}
Контроллер uploadController распологает методом Index.
Добавьте код после всех маршрутов:
routes.MapRoute(
"NotFound",
"{*url}",
new { controller = "uploadController", action = "Index" }
);
Решение оказалось достаточно простым. Пришлось создать новый контроллер :
public ActionResult Index()
{
return RedirectToAction("Index","upload");
}
Который и осуществляет переадресацию от неверных URL. А в файле Web.config необходимо добавить :
<customErrors mode="On" redirectMode="ResponseRedirect">
<error statusCode="404" redirect="~/Ooops/Index" />
</customErrors>
Так можно перенаправить запрос если в url есть некоторые ошибки. Однако если в url добавить точку и случайный символ то упадет стандартная 404 страница.
Основные этапы разработки сайта для стоматологической клиники
Продвижение своими сайтами как стратегия роста и независимости