2010-01-19 5 views
7

내 PHP 사이트에서 사용자에게 유지 보수 페이지를 표시하려고합니다. 나는 PHP에서 이것을 매우 쉽게 할 수 있다는 것을 알고 있지만 htaccess 파일을 사용하고 싶습니다. 성능이 이렇게 좋을 수도 있습니다. 그래서 내가 알고 싶은 것은 PHP에서 htaccess 파일을 수정할 수 있습니까? 가능하다면 나는 어느 쪽을 생각하고 있을까?PHP에서 .htaccess 파일을 작성 하시겠습니까?

1 - 파일이 있어야하고 아래에 코드가 있고 다른 하나는 그렇지 않을 것입니다. 두 파일 모두 내 다른 htaccess 파일도 포함합니다. 그런 다음 php는 어떤 파일이 표시되는지 전환하기 위해 admin 스크립트를 실행할 때이 파일의 이름을 .htaccess로 변경하여 변경할 수 있습니다.

2 - 현재 .htaccess 파일의 내용을 읽고 아래 코드를 APPEND하고, 필요한 경우 파일에서 제거 할 수도 있습니다.

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

나의 목표는 유지 관리 페이지를 표시하거나 표시하지 않도록 1 클릭 처리가 가능한 관리 스크립트를 작성하는 것입니다.

이 작업을 수행하는 방법에 대한 또는 당신은 열 fopen를 사용할 수있는 PHP

+0

는 http://us2.php.net/manual-lookup.php?pattern=write+file 에 fwrite는 4 일 다운 유권자 분명히 내가이 작업을 수행하는 방법을 모르는 @the – hobodave

+1

을 명중 또는 나는 "쓸데없는 시간"을 낭비하지 않았을 것입니다. – JasonDavis

답변

12

에서 htaccess로 파일을 수정하는 것도 가능가되는 것은, fwrite 모든 샘플 코드 또는 도움말 파일에 쓸하시기 바랍니다. 추가 모드에서 열어보고 설명서를 읽고 적용되는 것을 확인하십시오.

이것은 말하자면, 이것은 일을하는 이상한 방법처럼 들립니다. maintenance.html 파일이 존재

RewriteCond %{DOCUMENT_ROOT}/maintenance.html -f 
RewriteCond %{SCRIPT_FILENAME} !maintenance.html 
RewriteRule ^.*$ /maintenance.html [L] 

경우, 내 사이트가 유지 관리 중입니다 :

내가 방금 파일이 있는지 확인 규칙을 다시 사용 뭘 하려는지 달성.

+0

고마워요. 이것이 일종의 보호 된 파일인지 아닌지는 몰랐습니다. 파일 작업에 많은 경험이 없었습니다. – JasonDavis

+0

해결책에 동의합니다. 나는 Cpanel과 Wordpress와 같은 프로그램이 .htaccess 코드에/autogenerate 할 것이라고 알고있다. 그러나 그것은 쉽게 다른 방법으로 행해지는 무언가를위한 10 톤짜리 망치처럼 보인다. –

9

이 아닌.htaccess에서 PHP으로 작성하는 것이 좋습니다. 웹 서버 사용자에게 전통적으로 매우 낮은 권한을 가진 사용자에게 .htaccess에 대한 쓰기 권한을 부여해야합니다. 악용 가능한 스크립트 하나만 있으면 공격자가 효과적으로 서버를 다시 구성 할 수 있습니다.

인앱 스위치 유지 관리 모드의 경우 PHP 자체에서 유지 관리 페이지를 반환합니다. 앱 자체에서 유지 관리를 수행 할 때 일시적으로 파일을 .htaccess's 위치로 바꿔서 유지 관리 다시 쓰기를 사용하는 것이 쉽습니다.

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