2011-10-03 3 views
2

여기 내 설정이다 : 그 폴더 내의 페이지를로드 할 때 "디렉토리"를 숨기기 위해 노력하고 http://example.com/directory/사용 RewriteRule의 인덱스 파일을 읽을 수됩니다

가. 나는이에 HTML 루트 내 htaccess로 파일을 업데이트! (. ) (.)
한다 RewriteCond % {REQUEST_URI} 디렉토리에

옵션 + FollowSymLinks를
한다 RewriteEngine
한다 RewriteRule^$ 디렉토리/내가 디렉토리 폴더에 넣어하지 않는 한 $ (1)

디렉토리 폴더에있는 파일을로드 할 때이 잘 작동하지만, HTML의 루트 폴더에 index.html을 찾을 수 없습니다. 모든 도움을 미리 감사드립니다. 나는이 사이트에 Q & A를 다시 쓰는 모든 것을 끝냈다!

답변

0

귀하의 재 작성 규칙은 루트 디렉토리에서 요청을 받고/directory /에 파일 이름을 추가하는 것과 같습니다. 그러면/directory/폴더에도없는 한 루트의 파일이 직접 작동하지 않는 이유가 설명됩니다.

RewriteCond %{REQUEST_URI} !(.)directory 

이유는

+0

"directory"가 URL에 성공적으로 숨겨져 있습니다. – dwarbi

0

dougajmcdonald 충분히 설명하지만 index.html 파일을 요청할 때 현상금 그의 :-)

그래서 내가 다른 방법으로 설명, 모드 - 재 작성하여 재 작성 상태를 확인 요청 URI는 /index.html과 같으며 조건과 일치합니다 (조건 : 요청 URI는 /directory으로 시작하면 안됨).
따라서 mod_rewrite는 URL을 새로운 것으로 다시 씁니다. directory/index.html
이는 직접 directory/index.html을 요청하는 것과 같습니다. 그것이 그 파일을 "디렉토리" 디렉토리에 놓아야하는 이유입니다.

+0

감사! 어 ... 죽음 : htaccess 파일이 디렉토리에 있어야한다는 뜻입니까? – dwarbi

+0

@dwarbi 아니, ** ** htaccess **를 ** 디렉토리 **에 넣었 으면 다른 ** 디렉토리 **를 추가 했으므로 루트 폴더의 일부 파일을 사용하려면 다른 조건을 추가해야합니다 ! – undone

관련 문제