Google 404 и пользовательские страницы ошибок .NET - PullRequest
9 голосов
/ 30 сентября 2008

У меня есть сайт ASP.NET 2.0 с пользовательской страницей 404. Когда контент не найден, сайт обслуживает пользовательскую страницу 404 с добавлением строки запроса aspxerrorpath = / mauro.aspx. Сама страница 404 обслуживается с HTTP статусом 200. Чтобы решить эту проблему, я добавил

    protected void Page_Load(object sender, EventArgs e)
    {
        Response.StatusCode = 404;
    }

Я добавил виджет Google и у меня есть две проблемы с ним. В Internet Explorer 7 он не отображается там, где должен. Если я добавлю его в контент, я получу «неизвестную ошибку» на строчке 226 символа 79 или около того; если я добавлю его в раздел заголовка, над содержимым появятся поля поиска. В Firefox работает нормально.

Итак, мои проблемы:

  1. Как заставить виджет появиться рядный
  2. Как мне сделать страницу с ошибкой сделать как 404 с оригиналом имя и путь к файлу просил, чтобы, когда я прошу mauro.aspx Я получаю контент для 404 страницы, но с URL mauro.aspx? (Я предполагаю, что я буду нужно сделать перезапись URL в файл begin_request global.asax, но хотел бы, чтобы это подтвердили, прежде чем я делай глупости.)

Ответы [ 2 ]

10 голосов
/ 30 сентября 2008

В ASP.NET 3.5 SP1 появился новый режим перенаправления, который теперь можно использовать, чтобы он не перенаправлял. Он показывает страницу с ошибкой, но сохраняет прежний URL:

"Также хорошо для перенаправлений URL. Если вы установите для параметра redirectMode в файле web.config значение« responseRewrite », вы можете избежать перенаправления на пользовательскую страницу ошибки и оставить URL-адрес в браузере без изменений."

1 голос
/ 30 сентября 2008

Я обработал 404, выполнив это в файле global.asax

protected void Application_BeginRequest(object sender, EventArgs e)
{
    string url = Request.RawUrl;
    if ((url.Contains(".aspx")) && (!System.IO.File.Exists(Server.MapPath(url))))
    {
        Server.Transfer("/Error/FileNotFound.aspx");
    }
}

Теперь, если кто-нибудь может помочь мне с виджетом Google, это было бы здорово!

...