В настоящее время я использую Apache mod_rewrite для перенаправления на HTTPS, но я хотел бы удалить тело из ответа.
Как сейчас:
Пример: как бы я хотел, чтобы это было
Моя конфигурация перенаправления:
<IfModule mod_rewrite.c>
RewriteEngine on
RewriteCond %{HTTPS} off
RewriteRule (.*) https://%{HTTP_HOST}%{REQUEST_URI} [R=301,L]
</IfModule>
Вы можете определить собственный ErrorDocument для ответа 301, в котором вы можете установить пустой ответ. (Хотя указание настраиваемого «документа об ошибке» для не-ошибки, т. Е. Для чего-либо, кроме статуса 4xx или 5xx, явно не документировано.)
Например:
ErrorDocument 301 /errordocs/empty.html
RewriteEngine on
RewriteCond %{HTTPS} off
RewriteRule .* https://%{HTTP_HOST}%{REQUEST_URI} [R=301,L]
куда /errordocs/empty.html
буквально пустой документ.
В качестве альтернативы вы можете установить ErrorDocument
на равнину строка. Но вы не можете установить полностью пустую строку, поскольку тогда Apache не видит второй аргумент и завершает работу с ошибкой: «ErrorDocument принимает два аргумента». Однако вы можете сократить это до одного символа. Например, чтобы отправить просто дефис (-
) в теле ответа:
ErrorDocument 301 "-"
Тем не менее, это устанавливает тело ответа для все Ответ Apache 301. (Однако, если это находится в контейнере VirtualHost для порта 80 в конфигурации сервера, то в любом случае это будет ограничено перенаправлением только для HTTP.)
Ссылка: Этот ответ на вопрос StackOverflow более подробно описывает возврат пустого ответа от Apache.
Однако, как отметил @MichaelHampton в комментариях, следует ли вам отправлять пустое тело ответа в случае перенаправления другое дело.
Он находится в конфигурации сервера (файл .conf)
В стороне: Если это есть в конфигурации сервера, вам следует использовать простой mod_alias Redirect
в контейнере VirtualHost без протокола HTTPS (порт 80) вместо mod_rewrite. Используя mod_rewrite в этом контексте, чтобы явно проверить HTTPS
переменная сервера, не нужна. Это не влияет на возвращаемый документ об ошибке.