2010-04-07 5 views
0

.htaccess를 사용하여 httpd를 구성 할 수있는 서버가 있고, 전역 구성에 액세스 할 수 없습니다. 존재하지 않는 거의 모든 경로를 index.php에 다시 쓰고 싶습니다. 그래서 다음과 같이했습니다 :.htaccess 바보 같은 문제

RewriteCond %{REQUEST_FILENAME} !-f 
RewriteCond %{REQUEST_FILENAME} !-d 
RewriteRule ^(.*)$ index.php?path=$1 [L,QSA] 

그리고 괜찮습니다. 하지만 내가하고 싶은 또 다른 일은 PHP 파일 (예 :/php 인 다른 곳에 저장할 수 없다)을 유지하는 경로에 대한 액세스를 차단하는 것입니다.

RewriteCond %{REQUEST_URI} ^/php.* 
RewriteRule ^(.*)$ /index.php?path=$1 [L,QSA] 

그리고 글로벌 구성에 액세스가 있다면 그 또한 확인 작동합니다 :? 그래서 내가 좋아하는 일을했다 .../PHP가되는 index.php 재 작성으로 시작하는 그 어떤 경로 = PHP를하고 싶습니다. per-directory 설정의 경우,/php에 접근 할 때 index.php? path = php로 다시 쓰고 그 전에 디렉토리 이름을 넣습니다 : /php/index.php?path=php. 설명서를 읽었을 때마다 디렉토리 당 confoguration이 사용될 때 내부 리디렉션을 사용한다는 것을 알았습니다. 이 문제를 어떻게 피할 수 있습니까?

답변

0

대신 mod_rewrite와의 Deny from all를 사용할 수 있지만 당신이 정말로 그것을 원한다면, 당신은 mod_rewrite 문서에 noteed 같은 외부 리디렉션 강제 할 수있는 교체 문자열 http로 시작하는 경우

을 : //, 다음 디렉토리 접두사 은 추가되지 않습니다.

+0

결과는 괜찮지 만 외부 리디렉션은 피하고 싶습니다. 또한, 나는 모든 옵션에서 거부를 사용 하겠지만, 단지 그것을 금지하지 않고 외부 세계에 숨기려고했습니다. Thnx – justnoone

+0

'RewriteBase'를 시도해 볼 수는 있습니다.하지만 아직도 사용할 수있는 것을 모른다. – wRAR

+0

나는 그것도 시도해 보았지만 URL을 테스트 할 때 재 작성하기 전에 그것을 사용하는 것으로 보였다. – justnoone