• 카테고리

    질문 & 답변
  • 세부 분야

    프로그래밍 언어

  • 해결 여부

    미해결

localhost 경로

23.01.13 23:17 작성 조회수 274

0

안녕하세요, 선생님!

'나만의 프레임워크 만들기' 파트 중 라우팅 강의의 코드를 카피코딩하면서 수강하던 중에, 경로관련 문제가 생긴 것 같습니다.

localhost/로 $path값을 ' / '로 던져주었을 경우에는 정상적으로 작동하는데,

 

localhost/posts/1로 접속할 경우에는 not found에러가 뜨네요...

확인해보니, http_response_code(404)의 원인은 아니더라구요...ㅜㅜ

답변 1

답변을 작성해보세요.

0

웹서버에 따라 설정이 달라서 그럴 수 있습니다. 강의의 경우에는 개발용 php 내장 웹서버를 쓰지만, 아파치와 같은 상용 웹 서버는 별도로 모든 요청을 '/' 로 처리하도록 설정해야 할 수도 있기 때문이죠. .htaccess 의 다음과 같은 설정입니다.

<IfModule mod_rewrite.c>
    <IfModule mod_negotiation.c>
        Options -MultiViews -Indexes
    </IfModule>

    RewriteEngine On

    # Handle Authorization Header
    RewriteCond %{HTTP:Authorization} .
    RewriteRule .* - [E=HTTP_AUTHORIZATION:%{HTTP:Authorization}]

    # Redirect Trailing Slashes If Not A Folder...
    RewriteCond %{REQUEST_FILENAME} !-d
    RewriteCond %{REQUEST_URI} (.+)/$
    RewriteRule ^ %1 [L,R=301]

    # Send Requests To Front Controller...
    RewriteCond %{REQUEST_FILENAME} !-d
    RewriteCond %{REQUEST_FILENAME} !-f
    RewriteRule ^ index.php [L]
</IfModule>

아파치와 내장 웹서버는 일부 동작이 다를 수 있기 때문에 강의에서 사용하는 서버 및 환경과 동일한 환경에서 실습 하는 것을 권장드리고 있습니다. 이 문제에 대한 또 다른 답변인 다음의 질의응답을 참고하셔도 됩니다.

https://www.inflearn.com/questions/52447/apache%EC%97%90-%EC%98%AC%EB%A6%B4%EA%B2%BD%EC%9A%B0