40 votes

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 ou d'une maintenance temporaire du serveur

Comment configurer Apache 2.2 pour servir un code virtualhost 503 basé sur un nom particulier avec une page HTML personnalisée?

52voto

CaptainPete Points 2991

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 le fichier maintenance.trigger existe, Apache fournira une réponse 503 Service Unavailable . 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!

30voto

Gumbo Points 279147

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

0voto

AlexanderN Points 5805

@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]
 

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X