перенаправление php - заголовки HTML - PullRequest
6 голосов
/ 26 июня 2011

У меня много перенаправлений в веб-сервере VM, которые работают при просмотре сервера с помощью встроенного навигатора (iceweasel). Но это не работает при доступе к серверу из браузеров хост-машины (протестировано с FF4 / IE8 / Chrome / Opera11).

Все опытные методы перенаправления ведут на «сервер, недоступный или перегруженный» в браузерах хост-машины.

Если вы могли бы взглянуть на заголовки из журналов apache и дать некоторые подсказки о различиях (основной из них выглядит как URL GET при условии, что работает тот же код):

Рабочий запрос ведет к этому журналу:

cat /var/log/apache2/access.log | grep 127 | grep random | tail -n1   
127.0.0.1 - authuserid [26/Jun/2011:11:11:52 +0200]    
"GET /index.php?page=100 HTTP/1.1" 200 49151
"https://www.mydomain.foo/index.php?page=100&new_session=a4da9106dba2ffd40345a5eb624d7788&random=c0117685e7e65a307989c219efc587b4&sid=n7en2it41h2gumrcq3kmmil3c0&sidf=.ps_AWDkIY"
"Mozilla/5.0 (X11; U; Linux i686; en-US; rv:1.9.0.19) Gecko/2011050718 Iceweasel/3.0.6 (Debian-3.0.6-3)"

Не работающий запрос ведет к этому журналу:

cat /var/log/apache2/access.log | grep 192 | grep random | tail -n1   
www.mydomain.org:80 192.168.X.Y - authuserid [26/Jun/2011:11:08:07 +0200]  
"GET  /index.php?page=100&new_session=a4da9106dba2ffd40345a5eb624d7788&random=685de8bcd4d198d6ad7f3cf4b23de5b7 HTTP/1.1" 302 -
"http://www.mydomain.foo/index.php?page=xyz"    
"Mozilla/5.0 (Windows NT 6.1; WOW64; rv:2.0.1) Gecko/20100101 Firefox/4.0.1"

Я не могу показать ответ заголовка, так как я не получаю ответ и об ошибке не сообщается apache (loglevel = error).

Thx

Управление выполнено:
Я увеличил тайм-аут браузера (FF: network.http.keep-alive.timeout до 3600 с: без изменений.
Я проверил, что заголовки ранее не перенаправлялись в перенаправление: хорошо (дамп headers_sent () не показывает ни отправленных заголовков, ни пустой строки или пробела во включениях,)
Я увеличил время ожидания сервера Apache на всякий случай: без изменений
Я удостоверился в использовании абсолютного URL для HTTP / 1.1. Я пробовал php, html meta и js redirect: без изменений

РЕДАКТИРОВАТЬ 1:

Вот заголовки, видимые LiveHTTPHeaders в «нерабочем» случае:


http://www.mydomain.org/menus/noeud4.php
POST /menus/noeud4.php HTTP / 1.1
Ведущий: www.mydomain.org
Пользователь-агент: Mozilla / 5.0 (Windows NT 6.1; WOW64; rv: 2.0.1) Gecko / 20100101 Firefox / 4.0.1
Принять: текст / html, приложение / xhtml + xml, приложение / xml; q = 0,9, / ; q = 0,8
Accept-Language: fr, fr-fr; q = 0,8, en-us; q = 0,5, en; q = 0,3
Accept-Encoding: gzip, deflate
Accept-Charset: ISO-8859-15, utf-8; q = 0,7, *; q = 0,7
Keep-Alive: 3600
DNT: 1
Подключение: keep-alive
Рефере: http://www.mydomain.org/index.php?page=890
Cookie: PHPSESSID = 4bge5gg1rgkit78k3seqlfcbq2
Авторизация: базовая aW52aXRlZEBjYW1hY2FzYTp5b3VybXlndWVzdEB0b2RheQ ==
Тип содержимого: application / x-www-form-urlencoded
Длина контента: 98
login = my_superlogin1 & pwd1 = vbigpass3xqz% 40A2L & captcha = 91690 & source = noeud4.php &> Formulaire_valide = SOUMETTRE
HTTP / 1.1 302 найдено
Дата: вс, 26 июня 2011 14:17:27 GMT
Сервер: Apache / 2.2.9 (Debian) DAV / 2 SVN / 1.5.1 mod_fastcgi / 2.4.6 mod_python / 3.3.1 Python / 2.5.2> mod_ssl / 2.2.9 OpenSSL / 0.9.8g PHP / 5.3.3
X-Powered-By: PHP / 5.3.3
Истекает: четверг, 19 ноября 1981 г., 08:52:00 по Гринвичу
Cache-Control: нет хранилища, нет кэша, необходимо повторно проверить, после проверки = 0, предварительная проверка = 0
Прагма: без кеша
Расположение: http://www.mydomain.org/index.php?page=100&new_session=a4da9106dba2ffd40345a5eb624d7788
Длина контента: 0
Keep-Alive: тайм-аут = 60
Подключение: Keep-Alive
Тип контента: текст / html


http://www.mydomain.org/index.php?page=100&new_session=a4da9106dba2ffd40345a5eb624d7788
GET /index.php?page=100&new_session=a4da9106dba2ffd40345a5eb624d7788 HTTP / 1.1
Ведущий: www.mydomain.org
Пользователь-агент: Mozilla / 5.0 (Windows NT 6.1; WOW64; rv: 2.0.1) Gecko / 20100101 Firefox / 4.0.1
Принять: текст / html, приложение / xhtml + xml, приложение / xml; q = 0,9, / ; q = 0,8
Accept-Language: fr, fr-fr; q = 0,8, en-us; q = 0,5, en; q = 0,3
Accept-Encoding: gzip, deflate
Accept-Charset: ISO-8859-15, utf-8; q = 0,7, *; q = 0,7
Keep-Alive: 3600
DNT: 1
Подключение: keep-alive
Рефере: http://www.mydomain.org/index.php?page=890
Cookie: PHPSESSID = 4bge5gg1rgkit78k3seqlfcbq2
Авторизация: базовая aW52aXRlZEBjYW1hY2FzYTp5b3VybXlndWVzdEB0b2RheQ ==

HTTP / 1.1 302 Найдено
Дата: вс, 26 июня 2011 14:19:59 GMT
Сервер: Apache / 2.2.9 (Debian) DAV / 2 SVN / 1.5.1 mod_fastcgi / 2.4.6 mod_python / 3.3.1 Python / 2.5.2> mod_ssl / 2.2.9 OpenSSL / 0.9.8g PHP / 5.3.3 X -Powered-By: PHP / 5.3.3
Истекает: четверг, 19 ноября 1981 г., 08:52:00 по Гринвичу
Cache-Control: без хранения, без кэширования, обязательная повторная проверка, пост-проверка = 0, предварительная проверка = 0
Прагма: отсутствие кэширования
Расположение: https://www.mydomain.org/index.php?page=100&new_session=a4da9106dba2ffd40345a5eb624d7788&sid=4bge5gg1rgkit78k3seqlfcbq2&sidf=.ps_Z5wRio
Длина содержимого:0
Keep-Alive: время ожидания = 60
Соединение: Keep-Alive
Тип содержимого: текст / html


EDIT2 : сравнениеВ обоих случаях запроса / ответа (работает / не работает) я выделил следующие 2 основных различия среди других:

По «рабочим» ответам:
Статус: 200 , которые яне отвечаю на "нерабочий" ответ, но я не понимаю, почему.

на ответ "НЕ работающий":
DNT: 1
, который стоитдля опции Не отслеживать (меня) из FF4 .
Поэтому я попытался отключить эту опцию, но результат тот же.

Я могу пропустить sthg наверняка.Все выглядит так, как будто сервер не работает.Возможно, файл cookie сеанса (76 КБ) слишком большой.Я также попытался понизить Firefox 4 до 3,6, так как этот другой параметр изменился, но я все равно получаю тот же ответ с FF3.6, что и FF4.

1 Ответ

1 голос
/ 27 июня 2011

Как видно из опубликованных вами запросов, вы пытаетесь нажать: http://www.mydomain.org/menus/noeud4.php, но вы перенаправляетесь на http://www.mydomain.org/index.php?page=100&new_session=a4da9106dba2ffd40345a5eb624d7788, а затем снова на https://www.mydomain.org/index.php?page=100&new_session=a4da9106dba2ffd40345a5eb624d7788&sid=4bge5gg1rgkit78k3seqlfcbq2&sidf=.ps_Z5wRio

Сохраняет ли оноотправка 302 заголовков?

Я предполагаю, что сценарий noeud4.php - это сценарий входа в систему, который, вероятно, создаст сеанс и, возможно, установит несколько файлов cookie.Мое предположение должно было бы проверить, правильно ли это делается - и выяснить, почему он выбрасывает 302.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...