RewritePath для ответа 404? - PullRequest
2 голосов
/ 12 марта 2011

У меня есть модуль перезаписи, который соответствует запрошенному пути к слагу в моей БД.Если ничего не совпадает, я хочу вернуть код ошибки 404 и переписать URL-адрес на мою страницу 404.

Проблема в том, что, если я установлю статус ответа 404, перезапись не произойдет, иIIS возвращает страницу ошибки 404 по умолчанию вместо содержимого страницы, на которую я переписываю.

var slug = db.Slugs.FirstOrDefault(x => SqlMethods.Like(x.SlugValue, app.Request.Path));
if (slug == null)
{
    app.Response.Status = "404 Not Found";
    app.Context.RewritePath(Settings.NotFoundPage, true);
    return;
}

Есть ли способ сделать это?

(Если я закомментирую Состояние ипереписать URL на мой NotFoundPage, он работает нормально, но тогда код возврата не 404)

1 Ответ

2 голосов
/ 13 марта 2011

Я думаю, вы можете вместо этого переместить свой код app.Response.Status = "404 Not Found"; в код для своей страницы PageNotFound, и это сработает. Я только что сделал быстрый тест на моей машине. Другой вариант - изменить страницу ошибок IIS по умолчанию на страницу PageNotFound. Я считаю, что это может быть установлено для каждого сайта отдельно.

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