2011-07-06 4 views
0

존재하지 않지만 폴더에는없는 모든 파일을 다시 쓰려고합니다.폴더가 있지만 파일이없는 경우에만 다시 작성하십시오.

내 말은 것입니다 : 내가 할 수있는 재 작성 규칙을 찾고 무엇

foo 
    '-bar1 
    '-bar2 
    '-bar2.html 
    '-shared 
    '-shared.html 

example.com/foo/bar2/bar2을 제공하는 것입니다

내가이 폴더 구조를 가지고 말 .html 정상적으로. example.com/foo/bar1/bar1.html을 /foo/shared/shared.html로 제공하고 no는 example.com/foo/bar3/bar3.html을 제공합니다.

요약하면. 디렉토리가 있지만 해당 디렉토리에 파일이 존재하지 않는 경우에만 히트하는 RewriteCond를 개발하려고합니다. 와

문제 :

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

는/foo는/왈져 디렉토리가 존재하지 않는 경우에도 www.example.com/bar3/bar3.html 다시 것입니다.

도움 주셔서 감사합니다.

답변

2

이 규칙은 작업을 수행해야합니다 구성

RewriteCond %{REQUEST_FILENAME} !-f 
RewriteCond %{DOCUMENT_ROOT}/$1/ -d 
RewriteRule ^(.+)/([^/]+)$ /foo/shared/shared.html [L,QSA] 
  1. 이 규칙은 루트 폴더에 htaccess로 파일에 배치 할 수 있습니다. 구성 파일 (예 : httpd-vhost.conf)에 배치해야하는 경우 약간 수정해야합니다 (2 차 RewriteCond ..에서 일부 슬래시를 제거하거나 RewriteRule에 선행 슬래시를 추가하십시오. 실제로 테스트가 필요합니다).

  2. 이 규칙은 요청한 리소스에 최소 1 개의 폴더가있는 경우에만 작동합니다 (요청시 - 명백 함).

+0

우수! 완벽하게 대단히 감사했습니다! – RHollister

관련 문제