본문 바로가기

Server/PHP

[Laravel][Error] NotFoundHttpException in RouteCollection.php (line 179)

19.07.09 에 작성했던 에러 관련 글 초입에 서버 연결으로 애를 먹었다고 했던 사항이 다른 프로젝트에서 다시 발생해서 해결을 하려고 해결법을 찾는데 나오질 않아 조금 헤멨다. 그러다가 이전 코드를 조금 뒤져서 어떻게 했는지 기억이 난 것 같은데, 기록해둬야 다음에 다시 찾을 때 조금 애를 덜 쓸 것 같아서 작성해두기로 한다.

 

그 전에는 NotFoundHttpExecption.. 중에서도 좀 다른게 떳던 것 같기도 한데, 일단 그때는 Kermel.php 파일에서 오류가 난다고 하니 그 부분의 middleware쪽이나, 아무튼 그쪽 코드들을 고치려고 했었던 것 같다. 주석처리도 해보고 import 위치도 바꿔보고..

일단 해결하고 작업을 하고 있었는데, 이후에 들어보니 그 임시 방편이 접근성을 열어놓는 행위라서 외부 접근이나 공격도 문 활짝 열고 환영하게 된다고 하더라. 그래서 보니 결국 해결법은 app/Http/Middleware/VerifyCsrfToken.php 파일내

protected $except = [ ]; 요 부분에 내가 web.php에 등록해서 사용하고자 하는 경로를 추가해줘야 하는 것.

 

아래는 예시코드 

protected $except = [
        "/*",
        "/Myroot",
        "/MyPrefix" 
];

 

"/*" 는 말 그대로 root의 모든 경로를 허용한다는 뜻,

"/Myroot" 는 prefix를 Myroot로 등록한 범위 내의 모든 경로 접근의 허용. 그 아래 MyPrefix도 동일하다.

prefix를 등록한 경우에는 위처럼 "/prefix경로" 로 작성해도 되고, "/prefix경로/*" 처럼 애스터리스크를 작성해줘도 좋다.

 

문제는 그때 오류가 발생한건 Laravel 이라서 Kernel.php도, VerifyCarfToken.php 파일도 모두 존재했는데, 지금은 이전에 Laravel의 Lumen 프레임워크를 사용중인 프로젝트에서 발생한 문제라 어디에 어떻게 추가 해야 할 지 다시 찾아봐야 하는 상황. 해결하면 이 부분도 추가해놔야겠다.

 

+)

오류 해결했고 이거랑 별개의 문제였음..

그냥 서버 로컬 url ip를 잘못 설정해둔거였다...

그래도 김에 오류 하나 적어둔거지 뭐.. 근데 글에 작성한 오류가 뭐였는지 정확히 기억이 안나서 수정을 못 하겠다.

일단 해결