2010-11-29 4 views
0

예 : www.example.com/about.phpmod_rewrite를 사용하여 PHP 파일에 대한 액세스를 무시하는 방법은 무엇입니까?

확장자가 .php 인 파일을 사용할 수 없으면 대신 404 페이지를 표시하고 싶습니다.

내가 루트 폴더에있는 파일이 있습니다 content.php footer.php 등 about.php ... 는 지금은 ADRESS 표시 줄에 입력하여 이러한 파일에 도달 할 수 있습니다. 나는 이것을 제한하고 싶다.

어떻게 할 수 있습니까?

+0

내 게시물을 참조하십시오. MOD 재 작성이 필요없는 것은 아닙니다 (또한 최선의 해결책입니다). –

답변

0
RewriteRule \.php$ /path/to/page/404.html 
6

오버 헤드와의 mod_rewrite의 복잡성을 피할 더 좋은 방법은 단순히 루트 폴더에 URL로 당신이 도달하지 않으려는 파일을 넣어하지 않는 것입니다. 당신은 그저 다른 곳에 놓을 수 있습니다. 간단하고 (더) 안전하지만 어떤 이유로 이것은 일반적인 지식으로 보이지 않습니다.

예 구조는

project/ 
project/root 
project/lib 

귀하의 공공 코드 (예를 들어 index.php에이) 프로젝트/루트를 사는 것입니다 수 있습니다, 그것은 웹 사이트의 루트가 될 것입니다. 포함 된 코드는 project/lib에 있습니다. require, include 등을 사용하면 쉽게 포함될 수 있습니다.

No mod_rewrite. 아주 간단합니다.

+1

그래도이 방법으로 파일에 액세스 할 수 있습니다. – Maxxon

+0

아, mod_rewrite를 사용하면 URL을 통해 파일에 액세스 할 수 없습니다. 그게 핵심입니다. 어느 방법을 사용하든 편집기에 액세스 할 수있는 유일한 방법 인 파일을 편집 할 수 있습니다. –

+0

내 사이트에서 El Yobo의 솔루션을 구현했습니다. 나는 모든/include 디렉토리를'/ pages' 디렉토리에두고,'RewriteRule^pages /(.*)$/404 [R = 301, L]'을 추가하여 직접 include에 접근하려는 사람들을 쫓아 냈습니다. – Paul

관련 문제