Недавно я настроил балансировщик нагрузки с Google Compute Engine для управления SSL-сертификатами для моего экземпляра apache. (простой сайт)
Но я очень растерялся. Я использую движок перезаписи, чтобы изменить URL клиента на правильный.
RewriteEngine On
RewriteCond %{HTTPS} off [OR]
RewriteCond %{HTTP_HOST} ^www\. [NC]
RewriteCond %{HTTP_HOST} ^(?:www\.)?(.+?)\.?$ [NC]
RewriteRule ^ https://%1%{REQUEST_URI} [L,NE,R=302]
RewriteCond %{HTTP_HOST} ^([^.]+\.)?example?\. [NC]
RewriteRule ^ https://%examples.co%{REQUEST_URI} [L,NE,R=302]
Переписывает: с http на https, www to без www, без множественного числа на множественное, и все на TDL .co.
Этот код работает без балансировки нагрузки. Но с балансировщиком нагрузки это совершенно бесполезно.
Я поместил этот код в свой /etc/apache2/sites-enabled/default-ssl.conf
, а также попытался в своем файле 000-default.conf
. Да, я делал сброс apache после каждого редактирования. Другие конфигурации, такие как Document Root, прекрасно работают в этих файлах conf.
Я также сделал sudo a2enmod rewrite
на случай, если вам интересно. Также я не получаю ошибок! Другие моды, такие как VirtualDocument Root, которые я также использую в тех же файлах conf, работают отлично.
Оба веб-сайта http и https работают, но их URL-адреса просто не меняются в зависимости от механизма перезаписи.
Я также пытался использовать решение здесь из форм Google, но безуспешно.
Я совершенно ошеломлен тем, что делать в этот момент. Любые идеи или предложения. Я пропускаю заголовки или что-то? Почему не работает RewriteEngine?!