2011-12-07 3 views
1

대신 다음과 같이 htaccess로에 모두 선언의 모든 가능한 HTTP 상태 오류 코드 (4XX 및 5XX들)을 처리하기 위해 모 재 작성을 사용하는 방법이 있는지 궁금 해서요 :에서 ErrorDocument 및 모 재 작성

# serve custom error pages 
ErrorDocument 400 error.php?code=400 
[...] 
ErrorDocument 510 error.php?code=510 

가 주변의 어딘가에서이 작은 트릭을 발견했습니다.

# provide a universal error document 
RewriteCond %{REQUEST_FILENAME} !-f 
RewriteCond %{REQUEST_FILENAME} !-d 
RewriteRule ^.*$ error.php [L] 

하지만 404 개만 처리 할 수 ​​있습니까? 괜찮 으면 어떻게 캐시 바 스팅 다시 쓰기 규칙을 수정하여이 기능을 처리하도록 할 수 있습니까?

RewriteCond %{REQUEST_FILENAME} !-f 
RewriteCond %{REQUEST_FILENAME} !-d 
RewriteRule ^(.+)\.\d+\.(css|js)$ $1.$2 [L] 

내가 좋아하는 뭔가를해야합니다 :

IF %{REQUEST_URI} MATCHES "^(.+)\.\d+\.(css|js)$" 
    REWRITE TO "$1.$2" 
ELSE 
    REWRITE TO "error.php" 

당신이 날 제발 도와 드릴까요? 많은 감사!

답변

0

HTTP 상태 코드의 일부 새로운 웨이브가 가까운 장래에 웹에 도착하기를 기대하면서 올바른 해당 문서를 가리키는 10 개 정도의 오류 코드 목록을 만들 수 없습니까? 실제로는 List of HTTP status codes을 거치고 어떤 서버가 서버 이 실제로이 될지 선택하고 오류 문서를 설정해야합니다. 평범한 웹 서버는 아마도 404와 500, 아마 403이 올바르게 설정되지 않았다면 아마 403을 볼 것이고, 공유 웹 서비스를 사용한다면 509 일 것입니다. 어쨌든 호스팅 제공 업체). 전혀 다른 작업을 수행 할 수있는 매우 고급 웹 서버를 구축하지 않으면 웹 서버의 현미경 적 시간을 낭비하여 사용하지 않을 모든 오류 코드를 찾습니다.

하지만 심각하게 말하면 모든 상태 코드를 400에서 510까지 나열하지 마십시오. 진지하게. 그것들 중 많은 것들이 수동으로이 무엇인가 잘못되었다고 판단 할 때 실행 스크립트로부터 보내면 상태 코드가됩니다.

+0

다시 쓰기 규칙과 errordocuments간에 충돌이 있습니까? –

+0

아니요, RewriteRules에 의해 결정된 최종 경로가 존재하지 않거나 이유가 무엇이든 파일에 대한 권한이없는 경우 ErrorDocument가 사용됩니다. – animuson