최근 프로젝트를 윈도우에서 리눅스로 마이그레이션해야 하는데 로컬에서 실행하면 문제가 없습니다. 그런데 리눅스에서 테스트할 때 백엔드 시스템(admin.php)에 들어가면 오류 메시지가 너무 많이 나옵니다.
로딩 프로세스는 항목 파일로 admin.php입니다. 인덱스 컨트롤러는 baseAction을 상속합니다. baseAction에는 다음 코드가 있습니다.
class IndexAction extends BaseAction { public function index() { //indexAction.class.php } } class BaseAction extends Action { //BaseAction.class.php public function _initialize() { if (!$this->isLogin()) { $this->redirect('Home/Login/index'); } }
로그인 컨트롤러의 코드는
class LoginAction extends Action { /** * 显示登录页面 */ public function index() { if (!empty($_SESSION[C('SESSION_ADMIN_NAME')]) && !empty($_SESSION[C('SESSION_ADMIN_ID')]) && strtolower(ACTION_NAME) != 'logout') { $this->redirect("Index/index"); } $this->display('login'); }
이론적으로 loginAction은 baseAction을 상속하지 않으므로 리디렉션이 발생하지 않지만 웹사이트에서는 여전히 리디렉션이 너무 많다는 메시지가 표시되지만 프런트엔드의 index.php 아래 페이지는 정상이지만 백그라운드 시스템이 있습니다. 리디렉션이 답답합니다
디렉터리 구조는
pathinfo 모드를 수정해 보았으나 nginx의 rewrite 모드가 작동하지 않았습니다
해결책:
가장 어리석은 방법을 사용하세요. 입구부터 admin.php 파일로 시작해서 하나씩 인쇄하고 종료하여 문제가 어디에 있는지 확인하세요. 작은 노란 오리 디버깅 방법과 유사합니다. 하하
exit("123");