![仅使用 mod_alias 重定向、重复数据删除 SSL 配置来重定向 http 和非 www?](https://linux22.com/image/743612/%E4%BB%85%E4%BD%BF%E7%94%A8%20mod_alias%20%E9%87%8D%E5%AE%9A%E5%90%91%E3%80%81%E9%87%8D%E5%A4%8D%E6%95%B0%E6%8D%AE%E5%88%A0%E9%99%A4%20SSL%20%E9%85%8D%E7%BD%AE%E6%9D%A5%E9%87%8D%E5%AE%9A%E5%90%91%20http%20%E5%92%8C%E9%9D%9E%20www%EF%BC%9F.png)
这可能是重复的,但我找不到我要找的东西。我想将 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
从而消除了很多重复。在Macro
VirtualHost
Use
Apache 文档。