【发布时间】:2011-03-13 09:19:54
【问题描述】:
我有一个重写模块,它与我的数据库中的 slug 的请求路径相匹配。如果它不匹配任何内容,我想返回 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;
}
有什么办法吗?
(如果我注释掉 Status 并将 URL 重写为我的 NotFoundPage 它可以正常工作,但返回码不是 404)
【问题讨论】:
标签: .net asp.net url-rewriting