2017-09-11 1 views
10
내가

숨기기 상위 디렉토리/www가

이의이 URL이 www.mydomain.com/project/web과 같은 가정 해 봅시다 내 모든 스크립트, PHP, CSS 등으로 폴더를 포함하는 프로젝트를하고 index.html을 업로드하고

상위 폴더 "프로젝트"내 모든 파일 (그들은 안 함)를 단순히

질문 www.mydomain.com/project/ 입력하면 다운로드 볼 수 있고 쉽게 접근 할 수있는 내부

/index.html를

: 상위 폴더 및 문서를 숨기고 내 /index.html 만 액세스 가능하게 만들 수있는 방법이 있습니까?

내 서버가 Apache가 아니므로 .htaccess 파일을 설정하고 숨기기/리디렉션하고 404 오류 페이지를 반환하는 규칙을 만들 수 없습니다.

+2

가능한 복제 ([A 웹 사이트 폴더/디렉토리에 파일을 숨길 수있는 가장 좋은 방법은 무엇입니까] https://stackoverflow.com/questions/19439348/what-is-the-best-way-to-hide- a-websites-folder-directory-files) –

+0

내 서버가 Apache가 아니므로 .htaccess 파일을 설정하고 숨기기/리디렉션하고 404 오류 페이지를 반환하는 규칙을 작성할 수 없습니다. – Mykita

+2

실행중인 웹 서버 *는 무엇입니까? – j08691

답변

7

프로젝트 폴더 또는 액세스 권한을 원하지 않는 다른 폴더에 index.html을 설정할 수 있습니다.

그런 다음 index.html 페이지에 리디렉션을 추가하여 사용자를 실제 홈페이지로 푸시 할 수 있습니다. 당신은 그 index.html

<meta http-equiv="refresh" content="1; url=www.mydomain.com/project/web/"> 
     <script type="text/javascript"> 
      window.location.href = "www.mydomain.com/project/web/" 
     </script> 

의 머리에이 코드를 삽입 할 나는 아직도 가장 좋은 방법은 .htaccess를 사용하는 것입니다 생각합니다. 그러나 당신이 다른 선택의 여지가 없다면 이것은 폴더 기반 접근을 위해 작동 할 것입니다.

www.mydomain.com/project/file.txt 사실

+0

여기에 메타 태그의 역할은 무엇입니까? URL은 어떻게 작동합니까? – bhansa

+1

@bhansa이 HTML 스 니펫은 실제로 두 가지 다른 리디렉션입니다. 왜 둘? 그냥 두 배로. 예를 들어 사용자가 자바 스크립트를 차단할 수 있으므로 폴백으로 메타 태그가 리디렉션을 처리합니다. 해당 메타 태그에 대해 더 알고 싶다면 https://developer.mozilla.org/en-US/docs/Web/HTML/Element/meta –

+0

이 자료를 살펴볼 것입니다. 메타에서 URL을 사용할 수 있다는 것을 알지 못합니다. – bhansa

2

로 직접적 파일을 액세스하는 사람을 방지 할 것, 서버는 아파치입니다.

이 자신의 문서에서입니다 :

이전 및 새 웹 서버의 차이점은 무엇입니까? 모든 새로운 웹 서버의 운영 체제에서 Debian 7 Wheezy의 Debian 8 Jessie가 실행됩니다.

Apache가 Apache 2.2에서 Apache 2.4로 업그레이드되었습니다. 웹 호텔에서 자신의 .htaccess 파일 (특히 accesscontrol)을 실행하는 경우이 파일을 업그레이드해야 할 수 있습니다. 자세한 정보는 Apache-documentation을 확인하십시오.

이제 suPHP (mod_suphp) 대신 uWSGI를 사용하여 PHP를 실행하고 있습니다. 문서에

링크 : FAQ

링크 Apache 2.4

0

당신은 Laravel가하는 같은 폴더 구조를 사용하여 시도 할 수 있습니다, 설정을 해결하는 방법은 몇 가지가 있습니다 아파치 2.4 rewrite_mod하기 MVC (Model-View-Controller) 아키텍처를 사용하면 특정 요청 만 볼 수 있도록 제한 할 수 있습니다.

REST 패턴을 따른다.누군가가

mydomain.com/project //Returns 404 error 

에 가면/프로젝트의 컨트롤러가 정의되어 있지 않은 경우에만

Route::get('project', 'This is the project page'); 
같은 프로젝트 뷰를 정의하면, 그것은,

마찬가지로 404 오류가 발생합니다, 정의해야합니다

이것은 누군가가/project 디렉토리에 액세스 할 수있는 유일한 방법입니다. REST 패턴을 배우고 MVC/MTV 책임 중심 설계를 따르는 것이 좋습니다.

0

적어도 귀하의 질문에 따라 서버에서 PHP가 실행되고있는 것으로 보입니다. 이것은 당신이 뭔가 잘못했을 가능성이 가장 높음을 의미합니다. 그러나 Voloshin이 언급했듯이 질문을 연장해야합니다. 솔직히 PHP를 검사하여 "index.html"대신 "./"라고 표시된 링크가 있는지 확인하십시오. 거기에 그와 같은 것이 없다면, <a href="link" /> link </a> 태그를 모두 확인하여 거기에 끼지 않았는지 확인하십시오. 코드가 모두 최상!

1

내 아이디어를 시도해 볼 수 있습니다.

  1. 하면, 액세스 사용자를 싶지 않는 폴더의 내부에 index.html 또는 index.php 파일을 만듭니다 예를 들어, project 폴더; 사용자가 www.mydomain.com/project을 방문하여 콘텐츠를 볼 때 index.html이 대신 표시됩니다. 또는
  2. php 또는 JavaScript를 사용하여 index.html로 사용자를 redirect이 조건을 만듭니다.
관련 문제