这可能是重复的,但我找不到我要找的东西。我想将 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 文档。