해결된 질문
작성
·
151
1
안녕하세요, 라우팅 강의를 듣고 난 후 궁금한 점이 생겨 질문드립니다.
예제 코드에서 '/', '/posts/{id}'라는 라우팅을 설정해 주셨는데요.
로컬 환경에서 학습한다는 기준으로 PHP 내장서버를 실행시켜
localhost:8000/index.php,
localhost:8000/src/Database/Adaptor.php 등으로 접속했을 때에도 이에 대한 접근 불가 설정을 하지 않았으므로 접근이 허용되는 문제가 있었습니다.
이를 해결 하기 위한... 즉, 개발자가 정의한 URL 패턴 외 .php가 붙은 확장자로는 접근이 불가하게 설정할 수 있는 방법이 있을까요?
답변 1
1
폴더구조에서 간과한 사실이 있는지 살펴보시기바랍니다.
Root Directory
└ public
└ index.php
└ HelloWorld.php
이 구조에서 localhost:8080 -t public 으로 로컬서버를 호출했다면 public 폴더가 Document Root 로써 동작하기 때문에 다른 폴더에는 접근할 수 없어야합니다. DR 에는 오직 index.php 밖에 없기 때문이죠. index.php 를 public 에 넣지않고 구성했다면 다른 PHP 파일에 접근할 수 있는 것은 자연스러운 현상입니다.
강의 차수를 보아하니 아직 프론트 컨트롤러(Front Controller) 패턴에 대해 이야기하는 부분까지 나아가지 못하셨을 수도 있습니다. 하지만, 프로젝트를 더 진행하다보면 index.php 를 public 으로 넣어버리는 모습을 볼 수 있을겁니다.
답변 감사합니다.
강의를 좀 더 보고 이 질문에 대한 추가적인 궁금한 사항이 생길 시
다시 한번 남겨 보겠습니다.