я вещь следует документу, помогу u
Блок цитирования
Apache: Перенаправьте http к https безопасному соединению Apache – вызывают Подключения HTTPS
Давайте скажем, что у Вас есть субдомен веб-почты под названием http://mail.chida.in, и требуется перенаправить его к https безопасному соединению т.е. https://mail.chida.in.
Это поможет Вам защитить пользовательскую конфиденциальность и уязвимую информацию, такую как имя пользователя и пароль удаленно.
Таким образом, как Вы настраиваете свой веб-сервер Apache так, чтобы Вы препятствовали тому, чтобы Ваши веб-сайты были получены доступ без шифрования? Перенаправьте http к https Конфигурации Apache
Сначала удостоверьтесь, что Apache настроен для Подключения HTTPS, и установлены необходимые сертификаты SSL. Никакой non-ssl доступ т.е. только не принимает подключения HTTPS
Теперь откройте httpd.conf или .htaccess файл (mod_rewrite не требуемый):
Добавьте следующую строку: Перенаправьте постоянный / https://mail.chida.in/, Любой запрос, выполненный на http://mail.chida.in, будет goto https://mail.chida.in/
Сохраните и закройте файл. Перезапустите Apache:
Это - самый легкий способ гарантировать, чтобы Ваш обычный пользователь никогда не использовал протокол HTTP простого текста для отправки данных. Теперь это делает его намного тяжелее для сниффинга уязвимых данных. Веб-почта силы входит по SSL https в сессию
Таким образом, если Вы хотите, чтобы пользователи силы получили доступ к своей веб-почте через https, добавьте следующую конфигурацию к .htaccess файлу:
RewriteEngine На % RewriteCond {HTTPS} от RewriteRule (.*) https://% {HTTP_HOST} % {REQUEST_URI}
Удостоверьтесь, что у Вас есть что-то следующим образом в httpd.conf (mod_rewrite поддержка): LoadModule rewrite_module modules/mod_rewrite.so
Блок цитирования
Дополнение к ответу Мартина Фьордвальдса:
Apache использует фрагментированное кодирование только в том случае, если размер сжатого файла больше, чем DeflateBufferSize. Таким образом, увеличение этого размера буфера предотвратит использование сервером фрагментированного кодирования также для больших файлов, в результате чего Content-Length будет отправляться даже для заархивированных данных.
Дополнительная информация доступна здесь: http: //httpd.apache. org / docs / 2.2 / mod / mod_deflate.html # deflatebuffersize
Кажется, что Apache делает разделенное на блоки кодирование, это означает, что может отправить данные, поскольку это - gzipped вместо того, чтобы ожидать полного ответа, чтобы быть gzipped. Это - довольно общепринятая практика, я не достаточно знаком с Apache, чтобы сказать, может ли это быть отключено, все же.
Хорошо, мне удалось решить это. Как Martin F правильно указывает, Apache разделяет ответ на блоки, таким образом, размер содержания не известен. Для многих людей это желательно (страница загружается быстрее). Это прибывает в стоимость неспособности сообщить о прогрессе загрузки.
Для тех, которые как я, кто действительно хочет сообщить о прогрессе загрузки, если Вы используете Apache или автоматическую поддержку gzip PHP, существует мало, можно сделать. Решение состоит в том, чтобы сделать это вручную. Это легче, чем это звучит:
Если Вы отправляете целые файлы, то это - яркий пример в PHP для принуждения единственного блока (с Довольной Длиной): http://www.php.net/manual/en/function.ob-start.php#94741
При отправке сгенерированных данных то используйте gzencode для кодирования данных, как в вышеупомянутом образце. Предпосылка - то, что все Ваши выходные данные хранятся в переменной (можно использовать ob_start для помощи этому, если необходимо буферизовать, затем получить содержание буфера).
// $replyBody is the entire contents of your reply
header("Content-Type: application/json"); // or whatever yours is
// checks if gzip is supported by client
$pack = true;
if(empty($_SERVER["HTTP_ACCEPT_ENCODING"]) || strpos($_SERVER["HTTP_ACCEPT_ENCODING"], 'gzip') === false)
{
$pack = false;
}
// if supported, gzips data
if($pack) {
header("Content-Encoding: gzip");
$replyBody = gzencode($replyBody, 9, FORCE_GZIP);
}
// compressed or not, sets the Content-Length
header("Content-Length: " . mb_strlen($replyBody, 'latin1'));
// outputs reply & exits
echo $replyBody;
exit;
И вуаля!
Другое большое преимущество выполнения его самостоятельно - то, что можно установить уровень сжатия. Здорово для моего мобильного приложения, поскольку я могу установить на самый высокий уровень сжатия (таким образом, мои пользователи платят меньше за данные!) – тогда как сервер, вероятно, только использует средний уровень сжатия для лучшего компромисса ЦП/размера. Уровни сжатия - что-то, что я полагаю, что можно только измениться, если можно отредактировать httpd.conf (который на общем хостинге, я не могу).
Таким образом, я сохранил мой ВЫКАЧИВАТЬ .htaccess директиву для всего кроме моих ответов application/json, которые я теперь кодирую вышеупомянутым способом.
Еще раз спасибо Martin F, Вы дали мне искру, я должен был решить это :)