2009-08-26 29 views
5

Kullanıcılarıma site bakımını bildirmek için bu .htaccess'i yüklemeye çalışıyordum. İlk [L] çalışmıyor ve ikinci yeniden yazma her şeyi yapıyor gibi görünüyor."Site aşağı" sayfaları için yeniden yazma kuralı

Site bakımı iletilerini nasıl yapıyorsunuz?

RewriteEngine on 

RewriteRule ^s/down$ index.html [L] 
RewriteRule ^(.*)$ http://metaward.com/s/down [R=302,L] 

cevap

5

Bu iş gibi görünüyor (ama PHP durum kodu ayarlamak zorunda)

RewriteEngine on 

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

ve

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

bu ile herhangi bir sorunlarının down.php

yılında? Başlıca endişelerim, kullanıcının gördüğü (bu yüzden statik içeriği saklıyorum) ve hangi arama motorlarının göründüğü (503 durum kodu).

+0

Bu, yerleştiğim şeydi, ancak "RewriteCond" gerekli değil. Bu durumda 'RewriteRule! ^/(?: durağan | medya)/down.php [L]' yapacaktır. – Walf

1

ben bakım için kapatmaya istediğinizde web siteme kullanıyorum RewriteRules bu olanları şunlardır:

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

(Belki oldukça "optimize" değil

demeliyim .. Ama her zaman kullandım (ya da öyle görünüyordu)

Herşey ama down.html aşağı yöneldi.html - benim için hariç, tabi ki: Bakımını test edebilmek istiyorum işlemler yapıyorum, açıkçaBittiğimde ve sadece bu dört satırı yorumladım.

+1

IP adresi koşulu: temiz. –

+0

, arama motorlarının sayfanızı mükemmel bir şekilde oluşturuyormuş gibi yapmakta, ancak sizin garip sayfanızı sunmakta mıdır? –

+0

@Paul: Kabul etmeliyim ki emin değilim; Bir güvenlik önlemi olarak

6

Harici bir yönlendirmeye gerek yoktur. Sadece 503 status code ve hata belgenizi gönderin.

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

Ancak, 3xx dışındaki R bayrağıyla farklı bir durum kodu kullanmak için Apache 2.x'e ihtiyacınız var.

+0

503 aslında tarayıcının yeniden yönlendirilmesine neden olmaz. –

+0

@Paul Tarjan: Bunu asla söylemedim. Apache 2, durum kodlarını ayarlamak için 'R' işaretinin kullanımını genişletti. Sadece 3xx durum kodları aslında harici bir yönlendirmeye neden olur. – Gumbo

+0

ilginç, bu yüzden R aslında bir yönlendirmeyi zorlamıyor mu? wow, test .. –

0

Apache'yi ray üzerindeki bir yakut uygulaması için bir proxy olarak kullanıyorum. [Apache kurulumu] /htdocs/custom-errors/maintenance-message.html var:

yapmam gereken tek şey

benim httpd.conf için

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

ekleyip emin olun idi.

0

Yeniden Deneme başlığını kullanan hiç kimseyi göremiyorum. Okudum (ama bir süre önce okuduğum haliyle bir bağlantıya sahip değilim) bir Retry-After n ile birlikte bir 503 kullanmalısınız (n = tekrar denemek için saniye sayısı; 3600 bir saattir)) başlık. Eğer 503 ve Yeniden Dene-Taramayı kullanıyorsanız, özellikle robots.txt/sitemap'inizde, uzun bir süre böyle bırakmazsanız, SEO için bağlantılar ve sayfa sıralamasıyla uğraşmayın.

İlgili konular