>백엔드 개발 >PHP 튜토리얼 >Nginx 및 CI 프레임워크로 404 오류를 해결하는 방법

Nginx 및 CI 프레임워크로 404 오류를 해결하는 방법

不言
不言원래의
2018-06-14 13:53:442768검색

이 글은 주로 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 프레임워크에 의한 시스템의 핵심 클래스 확장 방법 분석

CI 프레임워크의 공개 모델 클래스 정의 및 사용법

위 내용은 Nginx 및 CI 프레임워크로 404 오류를 해결하는 방법의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

성명:
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.