apache2 mod_rewrite перенаправление без тела http [duplicate]

В настоящее время я использую Apache mod_rewrite для перенаправления на HTTPS, но я хотел бы удалить текст ответа.

Текущее состояние:

Current response

Пример: Каким я хотел бы быть

Desired response

Моя конфигурация перенаправления:

<IfModule mod_rewrite.c>
  RewriteEngine on
  RewriteCond %{HTTPS} off
  RewriteRule (.*) https://%{HTTP_HOST}%{REQUEST_URI} [R=301,L]
</IfModule>
1
задан 4 April 2018 в 21:52
1 ответ

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

1
ответ дан 3 December 2019 в 23:18

Теги

Похожие вопросы