За последние 24 часа нас посетили 16676 программистов и 1627 роботов. Сейчас ищут 1575 программистов ...

Испорченный HTTP Заголовок PHP 5.4.39 + IIS 8

Тема в разделе "Установка PHP", создана пользователем Plavozont, 14 сен 2015.

  1. Plavozont

    Plavozont Новичок

    С нами с:
    14 сен 2015
    Сообщения:
    2
    Симпатии:
    0
    Здарвствуйте. Мне нужно перенести сайт с apache на IIS, но IIS как-то неправильно формирует HTTP заголовки, а IE как-то неправильно их обрабатывает поэтому в IE мой сайт не работает.

    Я добавил в IIS веб-узел в котором есть только один файл index.php нулевого размера. Открывая этот сайт в браузере через инструменты разработчика я вижу заголовок:

    Content-Type: text/html; charset=UTF-8

    Этот заголовок приходит из php видимо.
    Потом в IIS с помощью модуля "Заголовки ответов HTTP" я устанавливаю заголовок:

    Content-Type: text/html; charset=windows-1251

    Иду в браузер, а там:

    "Content-Type text/html; charset=UTF-8,text/html; charset=windows-1251"

    То есть заголовок приконкатенировался вместо того чтобы замениться. Это видимо косяк IIS.
    Я попробовал настроить php.ini чтобы убрать первую часть заголовка(мне нужно перенести на IIS несколько сайтов один из них использует кодировку UTF-8 остальные windows-1251 поэтому одна настройка ко всем сайтам не подойдёт)
    В php.ini было:

    default_mimetype = "text/html"
    default_charset = "UTF-8"

    Я их закоментировал заголовок принял такой вид:

    "Content-Type text/html,text/html; charset=windows-1251"

    Написал
    default_mimetype = ""

    Заголовок остался таким же, в IE сайт по прежнему не работает.

    Помогите пожалуйста удалить лишний "text/html" из заголовка или посоветуйте что делать.

    Добавлено спустя 16 минут 46 секунд:
    Написал:
    default_mimetype =

    Стало:
    "Content-Type ,text/html; charset=windows-1251"

    В IE так и не работает, час оччасу не легче... Я конечно могу переворочить кучу php файлов прописывая в каждом header("Content-type: text/html; charset=windows-1251"); - это проблему решает, но радости совсем не доставляет, может кто без этого как обойтись знает?

    Может это означать что php по прежнему передаёт Content-Type но с пустым значением, что приводит к тому что IIS по прежнему прибавляет к нему свой заголовок?...
     
  2. rewuxiin

    rewuxiin Активный пользователь

    С нами с:
    17 апр 2012
    Сообщения:
    611
    Симпатии:
    87
    я не знаю что вас сподвигло на перенос сайтов на iis, но лучше бы вам отказаться уже сейчас.
     
  3. Plavozont

    Plavozont Новичок

    С нами с:
    14 сен 2015
    Сообщения:
    2
    Симпатии:
    0
    Уже 23 раза наступил на грабли и успешно их преодолел, в том числе и те что описал в данном сабже, везде header("Content-type: text/html; charset=windows-1251"); прописал. А сподвигло руководство, не желающее новый Linux сервер заводить, а старый уже слишком старый, его хотят списать...
     
  4. denis01

    denis01 Суперстар
    Команда форума Модератор

    С нами с:
    9 дек 2014
    Сообщения:
    12.227
    Симпатии:
    1.714
    Адрес:
    Молдова, г.Кишинёв
    Plavozont на windows даже nhinx можно поставить. не говоря уже о apache