[help]Проблема с ссылками

Тема в разделе "vBulletin", создана пользователем BORODA, 23 янв 2009.

Статус темы:
Закрыта.
  1. BORODA

    BORODA Пират селиконовой долины

    Регистр.:
    27 апр 2006
    Сообщения:
    147
    Симпатии:
    16
    Вчера перенёс булку на новый хостинг (easyCGI, Windows) и обновил движок с верси 3.7 RC1 до 3.8 Gold. Всё вроде нормально но возникла странная проблема
    http://airgun.in.ua/index.php
    Не сочтите за рекламу но при клике на любую тему с главной страницы перебрасывает на 404 дописывая в урл ещё раз airgun. Точто так же с некоторыми другими фичами, хотя ссылки при наведении выглядть нормально:
    http://airgun.in.ua/showthread.php?goto=newpost&t=1886
    Перебросит на
    http://airgun.in.ua/airgun.in.ua/showthread.php?p=35862#post35862
    если убрать дописаный домен то всё будет нормально и тема откроется.
    Подскажите пожалуйста в чём может быть проблема?? Очень нужно :bc:
     
  2. fragov

    fragov Постоялец

    Регистр.:
    3 июл 2007
    Сообщения:
    123
    Симпатии:
    28
    Думаю в настройках где-то указан твой домен без http://, поэтому булка добавляет его, посмотри и замени твойдомен.ин.уа на http://твойдомен.ин.уа
     
  3. BORODA

    BORODA Пират селиконовой долины

    Регистр.:
    27 апр 2006
    Сообщения:
    147
    Симпатии:
    16
    Нет, на сколько я разбирался тут проблема с функцией exec_header_redirect(). Она почему-то не корректно работает на виндовс хостинге. Я вроде уже смотрел, но не понимаю что с ней не так.
    Нет я всё таки нашёл проблему. Проблема была в функции create_full_url(), точнее не в функции а в том что глобалка $_SERVER['HTTP_HOST'] отдаёт кривое значение. Я зделал из

    // make sure we get the correct value from a multitude of server setups
    if ($_SERVER['HTTP_HOST'] OR $_ENV['HTTP_HOST'])
    {
    $http_host = ($_SERVER['HTTP_HOST'] ? $_SERVER['HTTP_HOST'] : $_ENV['HTTP_HOST']);
    }
    else if ($_SERVER['SERVER_NAME'] OR $_ENV['SERVER_NAME'])
    {
    $http_host = ($_SERVER['SERVER_NAME'] ? $_SERVER['SERVER_NAME'] : $_ENV['SERVER_NAME']);
    }

    зделал

    // make sure we get the correct value from a multitude of server setups
    /*if ($_SERVER['HTTP_HOST'] OR $_ENV['HTTP_HOST'])
    {
    $http_host = ($_SERVER['HTTP_HOST'] ? $_SERVER['HTTP_HOST'] : $_ENV['HTTP_HOST']);
    }
    else if ($_SERVER['SERVER_NAME'] OR $_ENV['SERVER_NAME'])
    {
    $http_host = ($_SERVER['SERVER_NAME'] ? $_SERVER['SERVER_NAME'] : $_ENV['SERVER_NAME']);
    }
    */
    $http_host = "";

    Дальше идёт оригинальный код булки. Всё вроде работает хотя фикс не совсем правильный.
     
  4. fragov

    fragov Постоялец

    Регистр.:
    3 июл 2007
    Сообщения:
    123
    Симпатии:
    28
    Не бока ли это в настройке Apache или PHP? Думаю, лучше настройки исправить, чем файлы скриптов редактировать.
     
  5. BORODA

    BORODA Пират селиконовой долины

    Регистр.:
    27 апр 2006
    Сообщения:
    147
    Симпатии:
    16
    Научитесь читать посты уважаемый. Это шард хостинг на виндовсе. Там нет апача (IIS) и PHP работает в режиме FastCGI. Естественно доступа к конфигам у меня нет.
     
Статус темы:
Закрыта.