Проблема автоматической переадресации на адрес iissite-XXXXX-YYYYY.in-solve.hidden

Материал из 1GbWiki.

(Различия между версиями)
Перейти к: навигация, поиск
Версия 10:27, 7 сентября 2007 (править)
Dmach (Обсуждение | вклад)
(Новая: Суть проблемы заключается в том, что скрипт некорректно использует в своей работе переменные веб-сер...)
← К предыдущему изменению
Версия 10:24, 24 декабря 2007 (править) (отменить)
NovaCxarmulo (Обсуждение | вклад)
м (Общий вид)
К следующему изменению →
Строка 4: Строка 4:
== Общий вид == == Общий вид ==
-Что бы решить проблему в общем случае – вам нужно методом отладки найти в проблемном скрипте участок кода в котором скрипт получает такой адрес для переадресации и заменить этот участок кода на получение правильной переменной, напремер - $_SERVER["HTTP_HOST"].+Что бы решить проблему в общем случае – вам нужно методом отладки найти в проблемном скрипте участок кода в котором скрипт получает такой адрес для переадресации и заменить этот участок кода на получение правильной переменной, например - $_SERVER["HTTP_HOST"].
== Gallery 2 == == Gallery 2 ==

Версия 10:24, 24 декабря 2007

Суть проблемы заключается в том, что скрипт некорректно использует в своей работе переменные веб-сервера пытаясь выполнить переадресацию на переменную server name (имя сервера). При этом важно понимать, что указанная переменная не обязана содержать host name и факт использования переменной таким образом – ошибка разработчиков скрипта.


Общий вид

Что бы решить проблему в общем случае – вам нужно методом отладки найти в проблемном скрипте участок кода в котором скрипт получает такой адрес для переадресации и заменить этот участок кода на получение правильной переменной, например - $_SERVER["HTTP_HOST"].

Gallery 2

Ниже описано исправление такой ситуации на примере скриптов Gallery 2 версии 1.19

Описанная ситуация возникает из-за некорректного получения переменной $baseUri по умолчанию в случае отсутствия явного указания значения этой переменной в конфигурационном файле. Решается двумя способами:

  1. Явно указать правильное значение в конфигурационном файле. В файле config.php есть строчка "$gallery->setConfig('baseUri', );". Вам нужно вписать вторым параметром в функцию URL галереи, например - "$gallery->setConfig('baseUri', 'http://photo.farewell.ru');"
  2. Исправить метод получения значения переменной $baseUri по умолчанию. В файле /modules/core/classes/GalleryUrlGenerator.class находим следующий код:
   if (empty($this->_host[$forceDirect])) {
   if (!isset($defaultHost) &&
       !($defaultHost = GalleryUtilities::getServerVar('HTTP_X_FORWARDED_SERVER'))) {
       $defaultHost = GalleryUtilities::getServerVar('HTTP_HOST');
   }
   $this->_host[$forceDirect] = $defaultHost;
   }

И заменяем его на следующий:

   if (empty($this->_host[$forceDirect])) {
   if (!isset($defaultHost))
   {
       $defaultHost = GalleryUtilities::getServerVar('HTTP_HOST');
   }
   $this->_host[$forceDirect] = $defaultHost;
   }
Личные инструменты