2013-07-11 2 views
0

새로운 이미지 크기가 생성되지 않은 경우 일부 레거시 이미지를 제공하려고합니다.mod_rewrite : "% {REQUEST_FILENAME}! -f"always true

내 문제는 기존 버전이 새 버전이 제공되는 경우에도 항상 제공된다는 것입니다.

예 :

  • foobar.png는 => 존재
  • n1_foobar.png =>없는
  • b_foobar.png는 =>
  • 가 b2_foobar.png가 => 본
  • 이다 존재

모든 파일은 "/ sub/dir/123 /"에 있습니다. "123"은 제공되는 페이지에 따라 바뀔 수 있습니다.

"foobar.png"이 제공되면 "n1_foobar.png"를 요청하는 방식으로 작동합니다. 하지만 "b2_foobar.png"를 요청할 때 "b1_foobar.png"를 제공하지 않습니다.

일부 플래그가 누락 된 것 같습니다.

<IfModule mod_rewrite.c> 
    # Options -MultiViews 
    RewriteEngine on 
    RewriteCond %{REQUEST_FILENAME} !-f 
    RewriteRule ^(.*)\/n1_(.*)$ $1/$2 [L] 
    RewriteCond %{REQUEST_FILENAME} !-f 
    RewriteRule ^(.*)\/b2_(.*)$ $1/b_$2 [L] 
</IfModule> 

감사 :

이 내 코드입니다!

해결 :

내가

이이 고정 된 룰을 작동합니다 내 가상 호스트 구성에 대한 규칙이 아닌 "htaccess로"내가 실종됐다 "% {DOCUMENT_ROOT}를"추가 된 이후 :

RewriteEngine on 
RewriteCond %{DOCUMENT_ROOT}%{REQUEST_FILENAME} !-f 
RewriteRule ^(.*)\/n1_(.*)$ $1/$2 [L] 

RewriteCond %{DOCUMENT_ROOT}%{REQUEST_FILENAME} !-f 
RewriteRule ^(.*)\/b2_(.*)$ $1/b_$2 [L] 

편집 : 추가 디렉토리 인포 편집 : 내 자신의 어리 석음 해결

(난처한 질문을 삭제하는 방법이 있습니까?)

답변

0

수정 된 버전을 사용해보십시오. 내가 루트 디렉토리에 파일을 이동하면

Options +FollowSymLinks -MultiViews 
# Turn mod_rewrite on 
RewriteEngine On 
RewriteBase/

RewriteCond %{REQUEST_FILENAME} -f [OR] 
RewriteCond %{REQUEST_FILENAME} -l [OR] 
RewriteCond %{REQUEST_FILENAME} -d 
RewriteRule^- [L] 

RewriteRule ^([^/]+)/n1_(.+)$ /$1/$2 [L,NC] 

RewriteRule ^([^/]+)/b2_(.+)$ /$1/b_$2 [L,NC] 
+0

가 작동하지 않습니다 :("n1_foobar.jpg"가 제공되지 않습니다. – Sebastian

+0

또한 솔루션이 작동하지 않습니다. "n1_foobar.jpg가"는 foobar "에 의해 제공되지 않습니다. jpg "누락시 – Sebastian

+0

이미지의 전체 URL은 정확히 무엇입니까? – anubhava