Я размещаю файл на сервере, который выбирается CocoaPods как часть пакета. CocoaPods использует curl для извлечения этого. Curl 7.54.0 в последней версии MacOS 10.14.2 (18C54) имеет Жук что вызывает проблемы с файлами, полученными через HTTP / 2. Это означает, что разработчики, использующие мой модуль, продолжают получать сбои установки из-за ошибки curl.
Поскольку curl используется внутри Cocoapods, я не могу предоставить переключатели командной строки для curl (по крайней мере, я не думаю, что Cocoapods предоставляет способ сделать это).
Есть ли способ, используя конфигурацию Apache, htaccess или PHP, я могу использовать HTTP / 1.1?
Вы можете решить, какую версию использовать, установив опцию CURLOPT_HTTP_VERSION
// default, lets CURL decide which version to use
curl_setopt($ch, CURLOPT_HTTP_VERSION, CURL_HTTP_VERSION_NON);
// forces HTTP/1.0
curl_setopt($ch, CURLOPT_HTTP_VERSION, CURL_HTTP_VERSION_1_0);
// forces HTTP/1.1
curl_setopt($ch, CURLOPT_HTTP_VERSION, CURL_HTTP_VERSION_1_1);
cURL
имеет переключатель командной строки -http1.1
, в PHP это может быть:
curl_setopt($ch, CURLOPT_HTTP_VERSION, CURL_HTTP_VERSION_1_1);
… это по крайней мере то, что документация говорит.
mod_rewrite
может также использоваться, чтобы запретить HTTP/2.0
(но понятия не имею, как это переключить):
RewriteCond %{SERVER_PROTOCOL} ^HTTP/2\.0$ [NC]
RewriteRule . [F,L]
Я думаю, что конфигурация виртуального хоста является наиболее надежной (это не будет работать в .htaccess
файл):
PolicyVersion enforce HTTP/1.1