Я хочу удалить существующий раздел на ssd, а затем создать раздел, а затем файловую систему на нем. Каждый сайт имеет свой собственный домен и собственную тему, поэтому я хочу, чтобы страницы ошибок (404 и 500) были специфичными для каждого ...
У меня есть один веб-сайт IIS, на котором будет размещено несколько сайтов (с использованием CMS).
Но когда я перехожу на несуществующий URL (например, http://mysite1.com/foo
), он вернет пустую страницу. В трассировке запроса (включенной с помощью трассировки неудачных запросов в IIS) я вижу, что он правильно пытается запросить /404.html
(как в моем разделе httpErrors
), но выиграл Тогда не переписывайте его на /404-site1.html
.
Кто-нибудь знает, возможно ли это вообще? Или есть другие способы настроить статические страницы ошибок HTML для разных доменов на одном сайте IIS?
В конце концов я решил, что это невозможно использовать правила перезаписи URL, поэтому теперь я использую простую страницу .aspx
, которая проверяет имя хоста и отображает исправьте содержимое страницы с ошибкой.
Поэтому я удалил правила перезаписи URL, упомянутые в вопросе, и заменил httpErrors
на это:
<httpErrors errorMode="Custom" existingResponse="Replace">
<remove statusCode="404" />
<error statusCode="404" path="/404.aspx" responseMode="ExecuteURL" />
<remove statusCode="500" />
<error statusCode="500" path="/500.aspx" responseMode="ExecuteURL" />
</httpErrors>
И в файле 404.aspx
I сделайте следующее:
<%@ page trace="false" validateRequest="false" %>
<%-- set correct site name based on request domain --%>
<% string siteName = ""; %>
<% string hostName = Request.Url.Host; %>
<% if (hostName == "mysite1.com") { siteName = "mysite1"; } %>
<% if (hostName == "mysite2.com") { siteName = "mysite2"; } %>
<%-- return file content with a 404 status code --%>
<% Response.StatusCode = 404; %>
<% if (!string.IsNullOrEmpty(siteName)) { Response.WriteFile("404-" + siteName + ".html"); } %>
Кажется, это подходит для того, что я хочу.