이 글은 주로 Nginx와 CI에서 404 오류를 해결하는 방법에 대한 관련 정보를 소개합니다. 필요한 친구들이 참고하면 됩니다
최근에 CI 프레임워크를 배워서 간단한 프로젝트를 만들어봤습니다. 조정되었지만 원격 서버에 배포하면
http://example.com/(index.php)/에 액세스할 수 있습니다(구성된 기본 컨트롤러 클래스의 경우)
http://example.com /(index.php )/[controller-class]/[controller-method]에 액세스할 수 없습니다(404 오류 프롬프트!)
마지막 Baidu 이유:
/index.php/abc, Apache 및 Lighttpd와 같은 URL의 경우 "index" .php?abc"를 누르면 nginx는 "index.php"라는 디렉터리에 있는 abc 파일의 내용이라고 생각합니다. 따라서 CI는 재작성 구성 없이 nginx에서 실행될 수 없지만 Apache 및 Lighttpd에서는 정상적으로 작동합니다.
해결책(굵게 강조, 빨간색 강조):
server { listen ; server_name example.com; root /data/wwwroot/example/ index index.php index.html index.htm; location ~* \.(css|js|swf|htm|jpg|png|gif|json|atlas)?$ { expires d; add_header Pragma public; add_header Cache-Control "public"; } location /controller-class/ { if (!-e $request_filename) { rewrite ^/controller-class/(.*)$ /controller-class/index.php?q=$uri&$args; } } location ~ \.php$ { fastcgi_pass ...:; fastcgi_index index.php; fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name; fastcgi_param PHP_VALUE open_basedir=$document_root:/tmp/:/proc/; include fastcgi_params; } }
위 내용은 모두의 학습에 도움이 되기를 바랍니다. !
관련 추천 :
CI 프레임워크에 의한 시스템의 핵심 클래스 확장 방법 분석
위 내용은 Nginx 및 CI 프레임워크로 404 오류를 해결하는 방법의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!