Перенаправить http и не www, используя только mod_alias Перенаправление, дедупликация SSL-конфигурации?

Это, вероятно, дубликат, но я не могу найти то, что ищу. Я хочу перенаправить http и / или non-www на https + www. Это часто цитируется как канонический пример того, когда следует избегать mod_rewrite .

Моя текущая настройка работает,с использованием только mod_alias ' Redirect , но для одного случая требуется дополнительный VirtualHost с идентичной конфигурацией SSL.

Есть ли способ упростить это, используя ] Только перенаправление ? Или для этого потребуется mod_rewrite ? Спасибо!

# Redirect http with or without www
<VirtualHost *:80>
  ServerName example.com
  ServerAlias www.example.com
  Redirect / https://www.example.com/
</VirtualHost>

# Redirect https without www
<VirtualHost *:443>
  ServerName example.com
  Redirect / https://www.example.com/
  SSLCertificateFile /etc/ssl/example/cert.pem
  SSLCertificateKeyFile /etc/ssl/example/key.pem
</VirtualHost>

# Final destination
<VirtualHost *:443>
  ServerName www.example.com
  DocumentRoot /var/www/example
  SSLCertificateFile /etc/ssl/example/cert.pem
  SSLCertificateKeyFile /etc/ssl/example/key.pem
  ...
</VirtualHost>
0
задан 8 October 2019 в 09:05
1 ответ

Для потомства я обнаружил mod_macro. Это избавляется от большого количества дублирования, позволяя мне записать Macro шаблон для блоков выше и уменьшая мое фактическое VirtualHost файлы к синглу Use строка с переменными. Ищите примеры в документы .

Apache
0
ответ дан 23 November 2019 в 04:16

Теги

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