2010-07-11 6 views
1

htaccess 파일에 약간의 문제가 있습니다. 현재 누군가가 실제 디렉토리에 액세스하려고 시도 할 때를 제외하고 처리를 위해 모든 것을 다시 index.php로 리디렉션합니다. 디렉토리가 존재하면, 그것은 가정 된 것처럼 index.php의 경로를 재 작성하는 대신 403 오류 페이지를 표시합니다. 인터넷을 통해 파일에 액세스 할 때 index.php로 이동하지만 서버에서 PHP로 올바른 파일을로드 할 수 있도록 수정하려면 무엇을 할 수 있습니까?디렉토리를 처리하기 전에 경로를 다시 작성 하시겠습니까?

Options -Indexes +FollowSymLinks 
RewriteEngine On 
RewriteBase/

ErrorDocument 403 /index.php?403 
ErrorDocument 404 /index.php?404 
ErrorDocument 414 /index.php?414 

RewriteCond %{HTTP_HOST} !^$ [NC] 
RewriteRule !^(.*) index.php [L] 

샘플 파일 구조 : 사용자가 그들에 액세스 할 수 없기 때문에 이러한 '닷컴'소스 '로

Web Directory 
- com 
- source 
- index.php 
- TEST.HTML 

폴더는 403을 표시합니다. 'index.php'및 'TEST.HTML'과 같은 파일은 정상적으로 실행됩니다. 내 htaccess를 웹 디렉토리 폴더에있는 index.php 파일로 다시 리디렉션하도록합니다.

답변

1

난 당신이 대신 할 생각 :

Options -Indexes +FollowSymLinks 
RewriteEngine On 
RewriteBase/

ErrorDocument 403 /index.php?403 
ErrorDocument 404 /index.php?404 
ErrorDocument 414 /index.php?414 

RewriteCond %{REQUEST_URI} !^/index.php 
RewriteRule .* index.php [L] 

은 직접 TEST.HTML에 액세스 할 수 싶지 않았다 사용자의 브라우저에서 URL을 변경하지 않은 가정이었다. 이러한 가정 중 하나라도 잘못 되었다면 알려 주시면 답변을 적절한 다시 쓰기 정보로 업데이트하겠습니다.

+0

감사합니다. 당신의 예는 제가 다시 쓰기 규칙 인'RewriteRule!^(. *) index.php [L]'앞에 부정을 가지고 있음을 알게 해주었습니다. 저는 어떤 종류의 이상한 효과가 '0 번 이상 문자가 아닌가'가 대본에있을 수 있는지 알지 못합니다. '!' 문제가 해결되었습니다. – animuson

관련 문제