Я думаю каждый сталкивался с проблемой создания собственных страниц ошибок на IIS. Сейчас об этом речь и пойдёт.
Многие наверняка знают самый простой и очевидный способ:
Но он не работает, а если и работает, то не всегда.
Поэтому я предлагаю вот такой вариант решения этой проблемы:
Вы наверняка заметили, что страницы с ошибками написаны на php. Я объясняю это тем, что при использовании ASP.NET MVC это не работает.
Теперь перейдём непосредственно к страницам ошибок:
Таким образом Вы теперь знаете, как создать собственные страницы ошибок на IIS сервере.
Настройка Web.config
Многие наверняка знают самый простой и очевидный способ:
<?xml version="1.0" encoding="utf-8" ?>
<configuration>
<system.web>
<customErrors mode="On">
<error statusCode="403" redirect="/Errors/403.cshtml" />
<error statusCode="404" redirect="/Errors/404.cshtml" />
</customErrors>
</system.web>
</configuration>
Но он не работает, а если и работает, то не всегда.
Поэтому я предлагаю вот такой вариант решения этой проблемы:
<?xml version="1.0" encoding="utf-8" ?>
<configuration>
<system.webServer>
<httpErrors>
<remove statusCode="404" subStatusCode="-1" />
<error statusCode="404" prefixLanguageFilePath="" path="/Errors/404.php" responseMode="ExecuteURL" />
<remove statusCode="403" subStatusCode="-1" />
<error statusCode="403" prefixLanguageFilePath="" path="/Errors/403.php" responseMode="ExecuteURL" />
</httpErrors>
</system.webServer>
</configuration>
Вы наверняка заметили, что страницы с ошибками написаны на php. Я объясняю это тем, что при использовании ASP.NET MVC это не работает.
Страницы ошибок
Теперь перейдём непосредственно к страницам ошибок:
<?php
$errorname = "HTTP 404 Not Found";
$errornamedisplay = "404";
require("template-header.php"); //включение шаблона шапки страницы
header("HTTP/1.0 404 Not Found"); //передача заголовка клиенту
$url=$_SERVER['REQUEST_URI']; //нужно для отображения адреса страницы
?>
<blockquote>
<blockquote>
<blockquote>
<p><span class="header">Запрашиваемая страница с адресом
'<?php echo"$url";?>'
не найдена.</span> </p>
<blockquote>
<p>Возможно, она была перемещена или временно недоступна.</p>
<p>Вы можете перейти на <a href="http://www.worldfly.info" target="_top">главную страницу World Fly</a>,</p>
<p> или воспользоваться поиском:
<form action="/Search/site.php" method="get" dir="ltr" lang="ru">
<input autocomplete="off" name="q" size="100" type="search" dir="ltr" placeholder="Поиск по World Fly" />
<input name="Отправить" type="submit" value="Поиск" />
</form>
<p> </p>
<p> </p>
<p>Если Вы уверены, что мы виноваты в Вашем попадании сюда <a href="mailto:support@worldfly.info">сообщите нам : support@worldfly.info</a>.<br />
</p>
</p>
<p> </p>
<p> </p>
</blockquote>
</blockquote>
</blockquote>
</blockquote>
<?php
require("template-footer.php"); //включение шаблона подвала
?>
Таким образом Вы теперь знаете, как создать собственные страницы ошибок на IIS сервере.