На этот вопрос уже есть ответ:
В настоящее время я использую 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
не требуется. Это не влияет на возвращаемый документ об ошибке.