apache — PHP-скрипт возвращает 403 запрещенную ошибку, если Content-Length опущен

Я использую общую учетную запись веб-хостинга на сервере Linux. Мой серверный PHP-скрипт можно вызвать из моего приложения Windows (клиента) с помощью Windows розетки. Не показывая слишком много кода (который является базовым соединением по протоколу HTTP с портом 80), клиентское приложение может отправить следующий заголовок скрипту PHP:

POST
/php/checkupdates.php?ver=1.2.3.4&ref=&nam=some%20name
HTTP/1.0\r\n
Accept: text/plain, text/html, */*\r\n
Accept-Language: en-us\r\n
Accept-Encoding: deflate\r\n
User-Agent: My own agent\r\n
Host:
mydomain.com
\r\n
\r\n

Но по какой-то причине этот скрипт возвращает 403 Forbidden ошибка. Интересно, что если я загружу этот же URL в веб-браузер, скрипт PHP будет работать нормально.

Чисто методом проб и ошибок я обнаружил, что если я добавлю следующую строку в заголовок, мой PHP-скрипт начнет работать нормально:

Content-Length: 0\r\n

Ну, это все хорошо. Но проблема в том, что для добавления этой строки мне нужно обновить все клиентские (Windows) приложения, которые мои пользователи загружали и использовали некоторое время. Другими словами, это не так просто сделать.

Поэтому я надеялся исправить это со стороны сервера (т.е. PHP). Есть идеи?

PS. Я также должен отметить, что это работало, когда я принимал хостинг у предыдущей веб-хостинговой компании (т.е. без Content-Length линия.)

PS2. Я пытался связаться с моим текущим хостинг-провайдером, но его техподдержка постоянно спрашивает мой публичный IP. (Возможно, внесите меня в белый список, чтобы я не увидел эту ошибку, которая не решит ее для других.) Другими словами, я не совсем уверен, что они знают, что делают. Поэтому я подумал сначала понять это, прежде чем снова связаться с ними.

0

Решение

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

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

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

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