Reescrever regra para páginas "site para baixo"

votos
5

Eu estava tentando instalar este .htaccess para notificar os meus usuários de manutenção do site. Parece que o primeiro [L] não está funcionando e o segundo reescrita está fazendo tudo.

Como vocês fazem mensagens de manutenção site?

RewriteEngine on

RewriteRule ^s/down$ index.html [L]
RewriteRule ^(.*)$ http://metaward.com/s/down [R=302,L]
Publicado 26/08/2009 em 23:14
fonte usuário
Em outras línguas...                            


5 respostas

votos
6

Você não precisa de um redirecionamento externo. Basta enviar o código de status 503 e seu documento de erro.

RewriteCond %{ENV:REDIRECT_STATUS} !=503
RewriteRule ^(.*)$ /503.html [R=503,L]
ErrorDocument 503 /503.html

Mas você precisa Apache 2.x para usar um código de status diferente com a bandeira R diferente 3xx.

Respondeu 26/08/2009 em 23:19
fonte usuário

votos
5

Isso parece funcionar (mas eu tenho que definir o código de status em PHP)

RewriteEngine on

RewriteCond %{REQUEST_URI} !^/static/.*$
RewriteCond %{REQUEST_URI} !^/media/.*$
RewriteRule .* down.php [L]

e em down.php

<?php
header('HTTP/1.1 503 Service Temporarily Unavailable',true,503);
?>

Qualquer problema com isso? Minhas principais preocupações são o usuário ver (que é por isso que eu continuo conteúdo estático) e do que os motores de busca ver (o código de status 503).

Respondeu 26/08/2009 em 23:34
fonte usuário

votos
1

Os RewriteRules que estou usando no meu site quando eu quero desligá-lo para manutenção são essas:

RewriteCond %{REMOTE_ADDR} !=MY_IP_ADDRESS
RewriteRule    ^$  /down.html  [L]
RewriteCond %{REMOTE_ADDR} !=MY_IP_ADDRESS
RewriteRule    [^/down.html$]  /down.html  [L]

(Talvez não completamente "otimizado", devo dizer ... Mas funcionou (ou assim parecia) cada vez que eu usei aqueles)

Tudo, mas down.html será redirecionado para down.html - exceto para mim, é claro: eu quero ser capaz de testar as operações de manutenção que eu estou fazendo, obviamente,

E quando eu terminar, eu só comentar essas quatro linhas.

Respondeu 26/08/2009 em 23:17
fonte usuário

votos
0

Eu não vejo ninguém usando o cabeçalho Retry-After. Eu li (mas não tenho mais o destino como eu li um tempo atrás) que você deve usar um 503 em combinação com um Retry-After n (n = número de segundos para tentar novamente em; 3600 é uma hora ) cabeçalho. Se você usar o 503 e o Retry-After em combinação, especialmente em seu robots.txt / mapa do site não deve mexer com links e page rank para SEO se você não deixá-lo assim por um longo tempo.

Respondeu 05/05/2015 em 19:06
fonte usuário

votos
0

Eu uso o Apache como um proxy para um aplicativo Ruby on rails.

A única coisa que eu tinha que fazer era adicionar

ProxyPass /custom-errors !
ErrorDocument 503 /custom-errors/maintenance-message.html

Para meu httpd.conf e certifique-se de que: [instalação Apache] existe /htdocs/custom-errors/maintenance-message.html.

Respondeu 09/12/2014 em 20:16
fonte usuário

Cookies help us deliver our services. By using our services, you agree to our use of cookies. Learn more