인프런 커뮤니티 질문&답변

언젠가는프리님의 프로필 이미지

작성한 질문수

PHP 7+ 프로그래밍: 객체지향

33 - MVC(Model, View, Controller)

왜 http://localhost/ 로 접근하면 public/index.php 가 실행되나요?

작성

·

1.8K

0

영상 14:07초 부터 뷰표기되는걸 설명주셨는데

사작이 public/index.php 인 이유를 모르겠습니다.

답변 1

0

정상우님의 프로필 이미지
정상우
지식공유자

안녕하세요~~

일반적으로 웹서버에서 루트 URL에 해당하는 / 의 경우 기본 값이 index.html 또는 index.php 로 지정됩니다. 프론트 컨트롤러(Front Controller)라고도 합니다. 서버에서 별도로 지정을 해주지 않고도 index.php 가 홈을 위한 파일로 지정됩니다. / 로 요청을 하면 index.php 로 요청이 됩니다. 또한 /posts 와 같이 요청을 해도 index.php 로 요청됩니다. 아파치를 사용할 때는 .htaccess 로 설정해주는 경우도 있습니다.

프론트 컨트롤러 때문에 /의 기본값으로 index.php 가 실행된다면

index.php 파일의 위치가 지금처럼 public 폴더 안이 아니라 밖에 있어야 된다고 이해했었고

public 안의 index.php를 읽으려면

localhost/public/index.php 이런식으로 접근되어야 한다고 생각해왔어서요

근데 실제로는 localhost/index.php 이렇게 읽으면 되는거 보니

실제로 public 폴더 안의 index.php를 읽는게 어느곳에서의 설정때문인지 궁금합니다.

정상우님의 프로필 이미지
정상우
지식공유자

서버를 켜실 때 php -S localhost -t public 으로 했을 때, 여기서 -t 옵션을 통해 public 을 지정하신 경우, Document Root, 즉, 외부에서 접근하기 위한 홈 디렉터리가 public 으로 설정됩니다. 따라서 사용자가 브라우저에서 접근할 때 서버의 public 을 Document Root 로 인지하고 그 내부에 있는 index.php 를 홈페이지를 위한 파일로 처리합니다.