<Macro HTTP2HTTPS $domain>
<VirtualHost *:80>
ServerName $domain
- Redirect permanent / https://$domain/
+ # Apparently you need the rewrite engine to implement
+ # a simple "redirect all except for..." policy. Amazing.
+ RewriteEngine on
+ # Do *not* redirect the acme-challenge dir to https, since otherwise the
+ # challenge cannot be fetched when there is no certificate yet for this domain.
+ RewriteRule ^/\.well-known/acme-challenge/(.*) /srv/acme-challenge/$1 [L]
+ # Make the upgrade to HTTPS a "permanent" redirect.
+ RewriteRule ^/(.*) https://$domain/$1 [R=301,L]
</VirtualHost>
</Macro>