web-dev-qa-db-fra.com

Comment mettre le site Web d'Apache à 503 "arrêt temporaire"?

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?

40
temoto

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é.

30
Gumbo

503 Temporairement indisponible, avec détente

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!

53
captainpete

@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]
0
Alex Nolasco