Назад | Перейти на главную страницу

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

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

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

Есть ли способ упростить это, используя Redirect только? Или это потребует 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>

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