Проблема автоматической переадресации на адрес iissite-XXXXX-YYYYY.in-solve.hidden
Материал из 1GbWiki.
Суть проблемы заключается в том, что скрипт некорректно использует в своей работе переменные веб-сервера пытаясь выполнить переадресацию на переменную server name (имя сервера). При этом важно понимать, что указанная переменная не обязана содержать host name и факт использования переменной таким образом – ошибка разработчиков скрипта.
[править] Общий вид
Что бы решить проблему в общем случае – вам нужно методом отладки найти в проблемном скрипте участок кода в котором скрипт получает такой адрес для переадресации и заменить этот участок кода на получение правильной переменной, например - $_SERVER["HTTP_HOST"].
[править] Gallery 2
Ниже описано исправление такой ситуации на примере скриптов Gallery 2 версии 1.19
Описанная ситуация возникает из-за некорректного получения переменной $baseUri по умолчанию в случае отсутствия явного указания значения этой переменной в конфигурационном файле. Решается двумя способами:
- Явно указать правильное значение в конфигурационном файле. В файле config.php есть строчка "$gallery->setConfig('baseUri', );". Вам нужно вписать вторым параметром в функцию URL галереи, например - "$gallery->setConfig('baseUri', 'http://photo.farewell.ru');"
- Исправить метод получения значения переменной $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; }