RFC2616, 503 Service non disponible
Le serveur n'est actuellement pas en mesure de traiter la demande en raison d'une surcharge temporaire ou maintenance du serveur
Comment configurer Apache 2.2 pour servir un code virtualhost 503 basé sur un nom particulier avec une page HTML personnalisée?
Vous pouvez utiliser mod_rewrite :
RewriteEngine on
RewriteCond %{ENV:REDIRECT_STATUS} !=503
RewriteRule !^/down/for/maintenance$ %{DOCUMENT_ROOT}down/for/maintenance [L,R=503]
La directive RewriteCond
garantit qu'aucune erreur interne supplémentaire ne se produit lors de la redirection vers un document d'erreur personnalisé.
RewriteEngine On
RewriteCond %{ENV:REDIRECT_STATUS} !=503
RewriteCond "/srv/www/example.com/maintenance.trigger" -f
RewriteRule ^(.*)$ /$1 [R=503,L]
Si la maintenance.trigger
existe, Apache diffusera un 503 Service Unavailable
réponse. Pour afficher une page personnalisée "en panne pour maintenance", utilisez ErrorDocument
pour spécifier le fichier, comme suit:
ErrorDocument 503 /503_with_cats.html
Prendre plaisir!
@temoto
Pour spécifier un 503 pour les robots et une page de maintenance pour les humains, essayez ce qui suit
RewriteEngine on
RewriteBase /
#for bots such as google
RewriteCond %{HTTP_USER_AGENT} ^.*(Googlebot|Googlebot|Mediapartners|Adsbot|Feedfetcher|bingbot)-?(Google|Image)? [NC]
RewriteCond %{ENV:REDIRECT_STATUS} !=503
RewriteRule !^/down/for/maintenance$ %{DOCUMENT_ROOT}down/for/maintenance [L,R=503]
#for humans
RewriteCond %{REMOTE_Host} !^1\.1\.1\.1
RewriteCond %{REQUEST_URI} !^/maint.html [NC]
RewriteRule .* /maint.html [R=302,L]