Apache Rewrite не работает

У меня в настройке apache2 происходит очень странная вещь. Я просто хочу перенаправить HTTP на HTTPS. Я перепробовал все возможные способы, например:

RewriteEngine On

RewriteCond %{HTTPS} !=on
RewriteRule ^/?(.*) https://%{SERVER_NAME}/$1 [R,L]

Я поместил это в /etc/apache2/apache2.conf , но это просто не сработало.

Затем я поместил это в ] , и он работает, но вместо этого я получаю

Эта страница не работает
kanzan.se перенаправлял вас слишком много раз.

Это потому, что я использую порт 80 за сервером кеширования (Varnish), а перед ним я использую . Все работает нормально, за исключением этого.

У меня даже была эта проблема до того, как я поместил туда Varnish, но затем я мог решить ее, переписав в , поскольку это сработало.

] Почему-то Apache не заботится о своем основном файле конфигурации /etc/apache2/apache2.conf ?

1
задан 22 September 2018 в 22:00
1 ответ

Я поместил это в /etc/apache2/apache2.conf , но он просто не работал.

Если под этим вы имеете в виду, что помещаете директивы прямо в сервер в контексте server , то директивы ничего не сделают, если у вас есть директивы mod_rewrite в , к которому осуществляется доступ. Вам нужно будет включить наследование mod_rewrite (но вы можете этого не делать).

Если вы находитесь за прокси-сервером, который управляет вашим SSL, ваш сервер приложений всегда обслуживает контент через порт 80, поэтому HTTPS серверная переменная никогда не бывает на - следовательно, ваш цикл перенаправления.

Однако прокси-сервер должен установить заголовок запроса X-Forwarded-Proto , указывая (для вашего приложения server), какой протокол используется. например. Либо http , либо https . Итак, вы, вероятно, могли бы изменить свою директиву, чтобы вместо этого читать следующее:

RewriteCond %{HTTP:X-Forwarded-Proto} ^http$ [NC]
RewriteRule ^/?(.*) https://%{SERVER_NAME}/$1 [R,L]

Опять же, ваша конфигурация может устанавливать какой-то другой нестандартный заголовок (или переменную среды), который вам нужно будет использовать вместо этого.

2
ответ дан 3 December 2019 в 20:12

Теги

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