Модераторы: gambit
  

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> Проблема редиректа на Мастерхост. 
:(
    Опции темы
vchilikov
  Дата 27.4.2009, 10:28 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 19
Регистрация: 21.9.2006

Репутация: нет
Всего: нет



Пользуюсь хостингом Мастерхост. Столкнулся со странной проблемой. У меня на сайте есть раздел портфолио. Там вывешены мои работы и ссылки на них, через редирект. Н-р: /goto/www.tumnews.ru.    Для редиректа использую следующий код в global.asax.cs:
Код

        protected void Application_BeginRequest(object sender, EventArgs e)
        {
            HttpContext context = HttpContext.Current;
            string currentLocation = context.Request.Path.ToLower();
            if (currentLocation.IndexOf("goto") > -1)
            {
                context.Response.Redirect("http://"+ currentLocation.Remove(0,6));
            }
        }

Этот редирект у меня на локальной машине работает, а на хостинге нет. Написал в тех поддержку мне отписались искать проблему у себя.

В чем может быть проблема?
PM MAIL   Вверх
Zakonnic
Дата 28.4.2009, 09:53 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Бывалый
*


Профиль
Группа: Участник
Сообщений: 161
Регистрация: 25.4.2006

Репутация: 3
Всего: 6



Этот код еще не такие чудеса творить может. Например, при использовании виртуальных каталогов. А уж если страница будет содержать goto в названии, то вообще атас  smile 

Можно сделать так:
Код

        protected void Application_BeginRequest(object sender, EventArgs e)
        {
            string currentLocation = Request.Path.ToLower();
            int gotoPos = currentLocation.IndexOf("/goto/");

            if (gotoPos > -1)
            {
                Response.Redirect("http://"+ currentLocation.Substring(gotoPos + 6));
            }
        }


А можно и подумать над созданием более функционального PageController-а или переходом на MVC.
--------------------
...и никогда не пишите в комментариях правду
PM MAIL ICQ   Вверх
vchilikov
Дата 29.4.2009, 00:02 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 19
Регистрация: 21.9.2006

Репутация: нет
Всего: нет



Спасибо за код, да действительно в моем коде, были недочеты с goto, я их устранил. Но это не решает основной проблемы, код на локальном сервере работает, а на masterhost нет.
Мне предложили в тех поддержке переписать код:
Код

Возможно, обработка не завершается и необходимо закрыть:

--.Response.StatusCode = 301;
--.Response.End();

Вот пример :

protected void Application_BeginRequest(Object sender, EventArgs e) {
   HttpApplication app = sender as HttpApplication;

   if (app != null)
   {
       string requestUrl = app.Request.Url.PathAndQuery;

       if (String.Equals(requestUrl, oldUrl))
       {
           app.Context.Response.RedirectLocation = newUrl;
           app.Context.Response.StatusCode = 301;
           app.Context.Response.End();
       }
   }
}

Vы не даем консультаций по вопросам программирования, веб-дизайна, настроек скриптов и программ. Мы лишь можем ответить на Ваши конкретные вопросы, связанные с работоспособностью наших серверов, и нашего программного обеспечения. 

Но этот код тоже не работает, подскажите что делать
PM MAIL   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
Прежде чем создать тему, посмотрите сюда:
Любитель
Mymik
mr.DUDA

Используйте теги [code=csharp][/code] для подсветки кода. Используйтe чекбокс "транслит" если у Вас нет русских шрифтов.

Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, Любитель, Mymik, mr.DUDA.

 
1 Пользователей читают эту тему (1 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | Разработка под ASP.NET | Следующая тема »


 




[ Время генерации скрипта: 0.1044 ]   [ Использовано запросов: 21 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.