2012-09-19 2 views
1

디렉토리가 아닌 모든 파일을 index.php로 리디렉션하고 있으므로 존재하는 모든 항목에 직접 액세스 할 수 있습니다 (하나의 디렉토리 제외).하나의 디렉토리를 제외하고 모든 파일과 디렉토리를 제외하는 방법 RewriteCond

# Files 
RewriteCond %{REQUEST_FILENAME} !-f 

# Directories except /orderfiles/* 
RewriteCond %{REQUEST_FILENAME} ^/(orderfiles/)* [OR] 
RewriteCond %{REQUEST_FILENAME} !-d 

RewriteRule .* index.php [L,QSA] 

디렉토리 내부/orderfiles을 위해 작동하지만 파일의 내부/orderfiles는 여전히 해당 파일로 이동 :

)의 index.php에 내가 가지고하는 것입니다. 나는 추가하려고 시도했다.

RewriteCond %{REQUEST_FILENAME} ^/(orderfiles/)* [OR] 
RewriteCond %{REQUEST_FILENAME} !-f 

그러나 이것은 모든 파일을 나누어서 index.php로 보낸다.

답변

4

당신은, 당신은 이런 식으로 뭔가를 가까이 할 것 : 나는 내가, 내가 의미 "하지만되는 index.php 하나의 디렉토리를 보내"일을하려고 무슨 잘못 입력 실현

# Files 
RewriteCond %{REQUEST_FILENAME} !-f 

# Directories 
RewriteCond %{REQUEST_FILENAME} !-d 

# except /orderfiles 
RewriteRule !^/?orderfiles index.php [L,QSA] 

(제 질문을 더 정확하게 편집했습니다). 나는 orderfiles이

그럼 당신은 무엇을, 정확을을 index.php로 라우팅 할 수/싶지 않지만 당신이 줄을 변경해야

RewriteCond %{REQUEST_FILENAME} ^/(orderfiles/)* [OR] 

에 :

RewriteCond %{REQUEST_URI} ^/orderfiles/ [OR] 
+0

감사를 들어 빠른 응답 - 나는 내가하고 싶은 것을 잘못 입력했다는 것을 깨달았습니다. 그러나 "하나의 디렉토리를 index.php로 보내라"는 의미였습니다. (제 질문을 더 정확하게 편집했습니다). 나는/orderfiles가 index.php로 보내 지길 원합니다. –

+0

감사합니다. 여전히 문제가 발생했습니다 (게시 된 괄호 없이는 작동하지 않습니다). 그래서^(/ orderfiles /) *를 ^/new/orderfiles /로 변경했습니다. RewriteBase/new/above를 가졌으므로 내가/new/again을 포함시켜야한다는 것을 깨닫는다. 이것은 모든 것을 작동하게 만들었습니다. 다시 한번 감사드립니다. –

관련 문제