仅使用 mod_alias 重定向、重复数据删除 SSL 配置来重定向 http 和非 www?

仅使用 mod_alias 重定向、重复数据删除 SSL 配置来重定向 http 和非 www?

这可能是重复的,但我找不到我要找的东西。我想将 http 和/或非 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>

答案1

为了方便后人,我发现了。它让我为上面的块编写一个模板,并将我的实际文件缩减为一行变量,mod_macro从而消除了很多重复。在MacroVirtualHostUseApache 文档

相关内容