2012-05-25 8 views
0

내 사이트의 루트 URL에 내부 폴더를 노출해야합니다.
그래서 나는 /public/
로 사용자를 리디렉션해야하지만 그것은 당신이 site.com에게.htaccess RewriteCond 구문

를 방문하는 경우 나는이 시도했다 리디렉션되지해야하지만이 동작하지 않습니다 :

 
RewriteCond $1 !^(.*)$ 
RewriteRule ^(.*)$ /public/$1 [L] 

편집 :
예를 들어 당신이 그렇지 않으면 단지을 실행 site.com/some-image.jpg
를 방문 할 때 /public/some-image.jpg
를 반환해야

답변

1
RewriteEngine On 
RewriteBase/
RewriteCond $1 !^public 
RewriteCond $1 !^$ 
RewriteRule ^(.*)$ /public/$1 [L] 
+0

$ 1 역 참조에서 무엇인가를 캡처하기 전에 RewriteRule이 없을 때 $ 1에 무엇이 들어 있습니까? – Ansari

+0

내 문제를 해결하지 않습니다, 그것을 명확하게 질문을 편집했습니다. 감사합니다. – orfaust

+1

@Ansari 거꾸로 보이지만 mod_rewrite는 먼저 정규 표현식을 URL에 일치 시키려고 시도한 다음 모든 재 작성 조건을 실행 한 다음 RewriteRule의 두 번째 인수에 지정된 URL을 생성합니다. 따라서이 경우 $ 1에는 그 뒤에있는 RewriteRule의 일치 항목이 포함됩니다. 내가 처음봤을 때 이상하게 보였지만 매우 강력했습니다. – Gerben