Проблема автоматической переадресации на адрес iissite-XXXXX-YYYYY.in-solve.hidden
Материал из 1GbWiki.
Версия 10:24, 24 декабря 2007 (править) NovaCxarmulo (Обсуждение | вклад) м (→Общий вид) ← К предыдущему изменению |
Текущая версия (12:26, 20 ноября 2009) (править) (отменить) Dmih (Обсуждение | вклад) м |
||
Строка 1: | Строка 1: | ||
Суть проблемы заключается в том, что скрипт некорректно использует в своей работе переменные веб-сервера пытаясь выполнить переадресацию на переменную server name (имя сервера). При этом важно понимать, что указанная переменная не обязана содержать host name и факт использования переменной таким образом – ошибка разработчиков скрипта. | Суть проблемы заключается в том, что скрипт некорректно использует в своей работе переменные веб-сервера пытаясь выполнить переадресацию на переменную server name (имя сервера). При этом важно понимать, что указанная переменная не обязана содержать host name и факт использования переменной таким образом – ошибка разработчиков скрипта. | ||
- | |||
== Общий вид == | == Общий вид == | ||
Строка 32: | Строка 31: | ||
$this->_host[$forceDirect] = $defaultHost; | $this->_host[$forceDirect] = $defaultHost; | ||
} | } | ||
+ | |||
+ | [[Категория:Проблемы с известными скриптами]] | ||
+ | [[Категория:PHP]] |
Текущая версия
Суть проблемы заключается в том, что скрипт некорректно использует в своей работе переменные веб-сервера пытаясь выполнить переадресацию на переменную 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; }