Подтвердить что ты не робот

Как разместить веб-сайт Apache до 503 "временно вниз"?

RFC2616, 503 Service Unavailable

В настоящее время сервер не может обработать запрос из-за временной перегрузки или обслуживания сервера

Как настроить Apache 2.2 для работы с определенным кодом на основе имени виртуального хоста 503 с пользовательской HTML-страницей?

4b9b3361

Ответ 1

Вы можете использовать mod_rewrite:

RewriteEngine on
RewriteCond %{ENV:REDIRECT_STATUS} !=503
RewriteRule !^/down/for/maintenance$ %{DOCUMENT_ROOT}down/for/maintenance [L,R=503]

Директива RewriteCond гарантирует, что при перенаправлении на пользовательский документ ошибки не возникает дополнительной внутренней ошибки.

Ответ 2

503 Временно недоступно, с триггером

RewriteEngine On
RewriteCond %{ENV:REDIRECT_STATUS} !=503
RewriteCond "/srv/www/example.com/maintenance.trigger" -f
RewriteRule ^(.*)$ /$1 [R=503,L]

Если файл maintenance.trigger существует, Apache будет обслуживать ответ 503 Service Unavailable. Чтобы выполнить настройку страницы "вниз для обслуживания", используйте ErrorDocument, чтобы указать файл, например:

ErrorDocument 503 /503_with_cats.html

Наслаждайтесь!

Ответ 3

@temoto

Чтобы указать 503 для ботов и страницу обслуживания для людей, попробуйте следующее

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]