2011-10-14 3 views
8

일부 사이트 업데이트가 완료 될 수 있도록 모든 URL을 임시 페이지로 리디렉션하는 규칙을 작성하려고하지만 무한 루프가 발생합니다.유지 관리 페이지로 임시 리디렉션

RewriteCond %{HTTP_HOST} ^(.*)mysite\.com$ 
    RewriteCond %{REQUEST_URI} !^(.*)temp$ 
    RewriteRule ^(.*)$ http://www.mysite.com/temp [R=307,L] 

임시 페이지인지 확인하는 방법은 무엇입니까?

답변

10

유지 관리 파일을 제외한 모든 요청에 ​​대해 규칙을 작성해야합니다.

의 .htaccess은 다음과 같아야합니다

RewriteEngine On 
RewriteBase/
RewriteCond %{REQUEST_URI} !^/maintenance\.html$ 
RewriteRule ^(.*)$ http://domain.com/maintenance.html [R=307,L] 
1

내가하는 일은 내 IP에서 오는 아니에요 때 maintenance.html 페이지로 모든 트래픽을 리디렉션하는 것입니다.

첫 번째 다시 쓰기 조건은 무한 루프를 방지합니다.

RewriteCond %{REQUEST_URI} !/maintenance.html$ 
RewriteCond %{REMOTE_ADDR} !^172\.16\.254\.1$ 
RewriteRule $ /maintenance.html [R=302,L] 
1

작동합니다. 시도해 보았습니다. 모든 요청을 유지 관리 페이지로 리디렉션합니다.

<IfModule mod_rewrite.c> 
RewriteEngine on 
RewriteCond %{REMOTE_ADDR} !^123\.456\.789\.000 
RewriteCond %{REQUEST_URI} !/maintenance.html$ [NC] 
RewriteCond %{REQUEST_URI} !\.(jpe?g?|png|gif) [NC] 
RewriteRule .* /maintenance.html [R=302,L] 
</IfModule> 
관련 문제