2009-09-09 3 views

답변

24
RewriteEngine On 
RewriteCond %{REQUEST_URI} \.(jpg|jpeg|gif|png|ico)$ [NC] 
RewriteCond %{REQUEST_FILENAME} !-f 
RewriteCond %{REQUEST_FILENAME} !-d 
RewriteRule .*$ /no_picture.png [L] 

각 줄의 의미를 분해 해 봅시다. 요청 된 파일이 괄호 ()에서 파일 확장자의 경우

RewriteCond %{REQUEST_URI} \.(jpg|jpeg|gif|png|ico)$ [NC] 

확인 확인합니다. 이 경우, 우리는 파일 이름이 파일이 아니라고 .jpg, .jpeg, .gif, .png 또는 .ico

RewriteCond %{REQUEST_FILENAME} !-f 
RewriteCond %{REQUEST_FILENAME} !-d 

확인 중 하나로 끝나는 있는지 테스트하고 있으며 또한 디렉토리 아니다.

RewriteRule .*$ /no_picture.png [L] 

요청한 리소스/파일이 모든 테스트를 통과하면 존재하지 않는 이미지입니다. 따라서 no_picture.png의 이미지를 브라우저에 제공하십시오. 이렇게하면 파일 이름이 유지됩니다. 당신이 no_picture.png 파일 이름에 재 지정하려면,이 또한 작동합니다 [R]

1
RewriteCond %{REQUEST_URI} pic/(.*) 
RewriteCond %{REQUEST_FILENAME} !-f 
RewriteRule pic/(.*)   pic/no_picture.png [L,E=STATUS:404] 
1

, 요청 된 파일이 존재하지 않는 경우, no_picture.png 그것을 다시 말한다 당신의 .htaccess

RewriteEngine On 
RewriteCond %{REQUEST_FILENAME} !-f 
RewriteRule no_picture.png [L] 

이 추가

+0

하지 존재하지 않는 HTML 또는 기타 파일 형식을 포함하는 것인가? – random

+0

네, 그렇습니다. 그래서 특정 이미지 디렉토리를 겨냥한 것이라고 언급 한 것입니다. 특정 파일 확장명과 일치하도록 변경할 수 있습니다 (다른 답변과 마찬가지로). –

4

[L]을 변경

<FilesMatch "\.(jpg|jpeg|png|gif)$"> 
ErrorDocument 404 "/no_picture.png" 
</FilesMatch>