2010-05-06 7 views
0

모든 이외의 폴더에 대한 액세스를 거부 젠드 프레임 워크는 -, 공용 폴더

나는 다음과 같은 젠드 응용 프로그램 구조가 있습니다

helloworld 
- application 
    - configs 
    - controllers 
    - models 
    - layouts 
- include 
- library 
- public 
    - .htaccess 
    - index.php 
- design 
- .htaccess 

현재를, 만약 사용자가 방문, http://localhost, 메이크업 위에 내 .htaccess 파일 확실히, 요청은 http://localhost/public으로 자동 전달됩니다. 사용자가 검색 주소창의 공용 폴더와 다른 폴더를 방문하면 해당 폴더의 디렉토리 목록을 가져옵니다.

공용 폴더를 제외한 다른 모든 폴더에 대한 사용자 액세스를 어떻게 거부 할 수 있습니까? 사용자가 다른 폴더를 방문하면 공용 폴더로 리디렉션되기를 원합니다. 기본 코드가 다른 폴더에서 뭔가 (예를 :) 요청하는 경우, 그것은 여전히 ​​작동합니다 ..

감사

답변

2

가장 쉬운 방법 (그리고 젠드 프레임 워크 설정이 함께 사용하도록 설계하는 방법) 공용 폴더의 내용을 DocumentRoot 아래에 두는 것입니다. 다른 모든 것은 DocumentRoot 밖으로 가야합니다.

어떤 이유로이 작업을 수행 할 수없는 경우와 다른 하위 디렉토리의 각 htaccess로 넣을 수 : 주문 허용 댓글에 대한 모든

응답에서 거부 거부 :

응용 프로그램은 응용 프로그램/컨트롤러 디렉토리 (또는 'public'을 제외한 디렉토리)가 DocumentRoot 아래에 있어야합니다. PHP 포함은 DocumentRoot (일반적으로) 외부에서 포함될 수 있습니다.

일반적인 권장 젠드 프레임 워크 응용 프로그램 폴더 구조를 따르고 있다면 브라우저 (예 : images/flash/multimedia, javascripts, css 및 index.php)에서 직접 액세스 할 수 있어야하는 모든 리소스가 내부에 있어야합니다 공개 디렉토리.

또한 .htaccess와 관련하여 디렉토리 트리의 최상위 레벨에서만 .htaccess 파일이 필요하므로 위의 예에서는 application, include, library 및 design에 각각 하나씩 넣을 것입니다 .

+0

내 문서 루트가 C : \\ xampp \\ htdocs \\ xampp \\ helloworld \\ public \\을 가리켜 야 함을 의미합니다. 그것은 나를 위해 작동하지 않습니다. 왜냐하면 코드가/application/controller/action을 요청하면 찾을 수 없기 때문입니다. – Jake

+0

. 각 디렉토리의 .htaccess 파일은 유망 해 보입니다. 많은 하위 디렉토리가 많이 있습니다 – Jake

+0

완벽한 .. 감사합니다 ..! – Jake

관련 문제