2010-01-26 6 views
1

mod rewrite를 사용하여 ErrorDocument 감속을 사용하여 요청한 파일 형식에 따라 오류 페이지를 사용자 지정할 수 있는지 궁금합니다..htaccess 및 다른 파일 형식에 대한 사용자 지정 ErrorDocument

예를 들어 존재하지 않는 html 또는 php 파일이 요청되면 Apache에서 멋진 사용자 정의 HTML 페이지를 제공합니다.

존재하지 않는 이미지, js, css, etc ... 파일이 요청되면 Apache는 링크 만있는 기본 html 파일을 제공합니다.

좋은 예가 Facebook입니다. 가짜 JavaScript 파일을 요청하면, 존재하지 않는 PHP 파일을 요청할 경우 다른 페이지를 받게됩니다.

답변

2

ErrorDocument와 RewriteRules의 조합을 사용하여 끝났습니다. PHP 페이지에서 나를 찾을 수 없으므로 작동합니다.

RewriteCond %{REQUEST_FILENAME} !-f 
RewriteCond %{REQUEST_FILENAME} !-d 
RewriteRule .*(?<!.js|.css|.ico|.txt|.bmp|.gif|.png|.jpeg|.jpg)$ /error/404.php [L] 

ErrorDocument 404 /404_basic.html 
+0

좋은 답변입니다! = D –

0

RewriteCond !-f을 사용하여 원하는 출력 페이지로 재 작성하고 R=404의 플래그를 사용하십시오.

+0

어디로 가는지 봅니다. 유일한 문제는 새 URL로 리디렉션하고 싶지 않다는 것입니다. 요청한 URL에 404 페이지 만 있으면됩니다. – AWinter

+0

3XX 외부의 코드와 함께'R'는 내부 리디렉션 만 수행합니다. error404.js 또는 error.css 또는 기타 등등을 가리 키십시오. –

-1

당신은 당신의 404 페이지에 대한 PHP 스크립트를 사용할 수 있습니다

ErrorDocument 404 /error404.php 

당신은 PHP ($_SERVER['REQUEST_URI'] 참조)와 URL 경로를 분석하고 요청 된 또는 예상되는 자원의 종류를 확인할 수 있습니다 .

+0

나는 원래 그렇게했다. 내가 원하는 것은 서버에 대한 PHP 요청의 수를 줄이는 것입니다. – AWinter

+0

AWinter : ErrorDocument는 어쨌든 하나의 PHP 호출로 끝납니다. –

관련 문제