MS Edge и IE не перенаправляют после входа в систему и получают код HTTP 302

ОС: FreeBSD 11-RELEASE (та же проблема, что и в 10.3-RELEASE)

Двигатель: nginx-1.10.1_2,2

Язык приложения: php70-7.0.12

CMS: Symfony 1.4


0) Я использую MS Edge или MS IE11.

1) Я иду на www.my.web.

2) Затем я нажимаю, чтобы войти, и я нахожусь на www.my.web / index.php / login.

3) Я ввожу учетные данные, и все браузеры правильно анализируют HTTP, кроме Edge и IE11.

4) Edge и IE11 сообщают «Не удается подключиться к веб-сайту».

Посмотри журнал доступа к серверу.

Край:

"POST /index.php/login HTTP/1.1" 302 113 "http://www.my.web/index.php/login" "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/51.0.2704.79 Safari/537.36 Edge/14.14393"

Fire Fox:

"POST /index.php/login HTTP/1.1" 302 113 "http://www.my.web/index.php/login" "Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:49.0) Gecko/20100101 Firefox/49.0""GET / HTTP/1.1" 200 21265 "-" "Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:49.0) Gecko/20100101 Firefox/49.0"

Хром:

"POST /index.php/login HTTP/1.1" 302 113 "http://www.my.web/index.php/login" "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/54.0.2840.71 Safari/537.36""GET / HTTP/1.1" 200 21262 "http://www.my.web/index.php/login" "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/54.0.2840.71 Safari/537.36"

Opera:

"POST /index.php/login HTTP/1.1" 302 113 "http://www.my.web/index.php/login" "Mozilla/5.0 (Windows NT 10.0; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/53.0.2785.143 Safari/537.36 OPR/40.0.2308.90""GET / HTTP/1.1" 200 21273 "http://www.my.web/index.php/login" "Mozilla/5.0 (Windows NT 10.0; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/53.0.2785.143 Safari/537.36 OPR/40.0.2308.90"

Сафари:

"POST /index.php/login HTTP/1.1" 302 113 "http://www.my.web/index.php/login" "Mozilla/5.0 (Windows NT 6.2; WOW64) AppleWebKit/534.57.2 (KHTML, like Gecko) Version/5.1.7 Safari/534.57.2""GET / HTTP/1.1" 200 21281 "http://www.my.web/index.php/login" "Mozilla/5.0 (Windows NT 6.2; WOW64) AppleWebKit/534.57.2 (KHTML, like Gecko) Version/5.1.7 Safari/534.57.2"

Код перенаправления ниже:

/**
* Redirects the request to another URL.
*
* @param string $url        An associative array of URL parameters or an internal URI as a string
* @param int    $delay      A delay in seconds before redirecting. This is only needed on
*                           browsers that do not support HTTP headers
* @param int    $statusCode The status code
*
* @throws InvalidArgumentException If the url argument is null or an empty string
*/

public function redirect($url, $delay = 0, $statusCode = 302)
{
if (empty($url))
{
throw new InvalidArgumentException('Cannot redirect to an empty URL.');
}

$url = $this->genUrl($url, true);
// see #8083
$url = str_replace('&', '&', $url);

if (sfConfig::get('sf_logging_enabled'))
{
$this->dispatcher->notify(new sfEvent($this, 'application.log', array(sprintf('Redirect to "%s"', $url))));
}

// redirect
$response = $this->context->getResponse();
$response->clearHttpHeaders();
$response->setStatusCode($statusCode);

// The Location header should only be used for status codes 201 and 3..
// For other code, only the refresh meta tag is used
if ($statusCode == 201 || ($statusCode >= 300 && $statusCode < 400))
{
$response->setHttpHeader('Location', $url);
}

$response->setContent(sprintf('<html><head><meta http-equiv="refresh" content="%d;url=%s"/></head></html>', $delay, htmlspecialchars($url, ENT_QUOTES, sfConfig::get('sf_charset'))));
$response->send();
}

Пожалуйста, посмотрите на захваченные данные.
В обоих случаях сервер ответил обновлением URL.
Но Edge не разбирает его и «Хм, мы не можем добраться до этой страницы».

Пограничный запрос:
`, 4EjM @ г. aPX PPOST /index.php/login HTTP / 1.1
Принять: текст / html, приложение / xhtml + xml, изображение / jxr, /
Referer: Http: //www.my.web/index.php/login
Accept-Language: en-GB, en-US; q = 0,7, en; q = 0,3
Пользователь-агент: Mozilla / 5.0 (Windows NT 10.0; Win64; x64) AppleWebKit / 537.36 (KHTML, как Gecko) Chrome / 51.0.2704.79 Safari / 537.36 Edge / 14.14393
Тип контента: application / x-www-form-urlencoded
Accept-Encoding: gzip, deflate
Ведущий: www.my.web
Длина контента: 198
DNT: 1
Подключение: Keep-Alive
Cache-Control: без кеша

Ответ сервера:
HTTP / 1.1 302 найдено
Сервер: nginx
Дата: пн, 24 окт 2016 19:45:20 GMT
Content-Type: text / html; кодировка = UTF-8
Передача-кодировка: чанки
Подключение: keep-alive
Keep-Alive: тайм-аут = 300
X-Powered-By: PHP / 7.0.12
Истекает: четверг, 19 ноября 1981 года, 08:52:00 по Гринвичу
Cache-Control: нет хранилища, нет кэша, необходимо повторно проверить
Прагма: без кеша

ДАННЫЙ ответ:
html head meta http-экв = «обновить» содержимое = «0; url =Http: //www.my.web/«/> / head / html

Запрос Chrome:
`, 4Э -рЕ @ г. PN50PJPOST /index.php/login HTTP / 1.1
Ведущий: www.my.web
Подключение: keep-alive
Длина контента: 198
Cache-Control: max-age = 0
Происхождение: Http: //www.my.web
Обновление небезопасных запросов: 1
Пользователь-агент: Mozilla / 5.0 (Windows NT 10.0; Win64; x64) AppleWebKit / 537.36 (KHTML, как Gecko) Chrome / 54.0.2840.71 Safari / 537.36
Тип контента: application / x-www-form-urlencoded
Принять: текст / html, приложение / xhtml + xml, приложение / xml; q = 0,9, изображение / webp,/; Д = 0,8
Referer: Http: //www.my.web/index.php/login
Accept-Encoding: gzip, deflate
Accept-Language: en-US, en; q = 0,8

Ответ сервера:
HTTP / 1.1 302 найдено
Сервер: nginx
Дата: понедельник, 24 октября 2016 г., 19:03:57 по Гринвичу
Content-Type: text / html; кодировка = UTF-8
Передача-кодировка: чанки
Подключение: keep-alive
Keep-Alive: тайм-аут = 300
X-Powered-By: PHP / 7.0.12
Истекает: четверг, 19 ноября 1981 года, 08:52:00 по Гринвичу
Cache-Control: нет хранилища, нет кэша, необходимо повторно проверить
Прагма: без кеша

ДАННЫЙ ответ:
html head meta http-экв = «обновить» содержимое = «0; url =Http: //www.my.web/«/> / head / html>


Старый сервер отвечает всем браузерам:
Место нахождения: Http: //my.web/

Новый ответ сервера для всех браузеров:
: http: //my.web/

Я думаю, что выше порождает проблему и край&IE не может справиться с этим.

0

Решение

Задача ещё не решена.

Другие решения

Других решений пока нет …

По вопросам рекламы [email protected]