てっきり、httpd.confに設定を入れてしまえば、全体に同じように設定できると勘違いしていました。
が、VirtualHostが設定されているサイトについては、VirtualHostディレクティブ内で設定しないと動かないみたいです。
今まで意識してなかったので、はまってしまいました。
<VirtualHost *:80>
ServerName sample.local
DocumentRoot /var/www/html
<Directory /var/www/html>
Require all granted
AllowOverride all
</Directory>
ErrorDocument 503 /maintenance.html
RewriteEngine On
RewriteCond %{REQUEST_URI} !=/maintenance.html
RewriteRule ^.*$ - [R=503,L]
</VirtualHost>
<VirtualHost *:443>
ServerName sample.local
DocumentRoot /var/www/html
<Directory /var/www/html>
Require all granted
AllowOverride all
</Directory>
SSLEngine On
SSLCertificateFile /etc/pki/tls/certs/localhost.crt
SSLCertificateKeyFile /etc/pki/tls/private/localhost.key
ErrorDocument 503 /maintenance.html
RewriteEngine On
RewriteCond %{REQUEST_URI} !=/maintenance.html
RewriteRule ^.*$ - [R=503,L]
</VirtualHost>
httpとhttpsそれぞれでアクセスできるように設定していますが、それぞれ記載しないと動きませんでした。
※80番ポート(HTTP)の方も、httpd.confや、VirtualHostの外に記載しても動きませんでした。
ただし、今は、httpsでの接続がほぼ必須になっているので、httpは一度httpsへリダイレクトするなりの設定のほうがよいと思います。