>백엔드 개발 >PHP 튜토리얼 >thinkphp nginx php-fpm URL 재작성으로 인해 404 오류 발생

thinkphp nginx php-fpm URL 재작성으로 인해 404 오류 발생

WBOY
WBOY원래의
2016-07-29 09:12:361250검색

thinkphp nginx php-fpm url 재작성 시 404 오류 발생

이전에는 thinkphp 시스템을 Apache에 배포했지만 동시성 성능 측면에서 nginx가 Apache보다 훨씬 강력하다는 점을 고려하면 nginx php-fpm 모드는 다음과 같습니다. centos에서 사용되었으며 thinkphp 시스템을 다시 배포하여

1

/index.php/home/user/verify

1과 같은 것을 발견했습니다.

/색인.php//사용자/확인

1

/index.php?s=/home/user/verify

이러한 URL nginx는 404 오류를 보고하지만

1

1

/index.php/home/user/verify

/index. php?s=//사용자/확인

은 나중에 접근 가능하다는 뜻인데, 이전 URL nginx는 지원하지 않는다는 뜻인데 왜 지원하지 않는 걸까요? 이 문제를 해결하려면 먼저 thinkPHP의 여러 URL 모드를 이해해야 합니다.

thinkPHP URL 패턴

1. 경로 정보 패턴

1

/?s=/home/user/verify

1

/색인.php//사용자/확인

이 URL 형식을 사용하려면 서버에서 pathinfo를 지원해야 합니다.

2 . 다시 쓰기 모드

index.php의 의사 정적 모드 제거

3. 호환성 모드

1

'URL_MODEL'=>3

1

/?s=//사용자/확인

1

234567891011

#以index.php开头的uri

location~^/index.php(.*)

        {

                #如果文件或者路径不存在

                if(!-e$request_filename)

                {

                        #将pathinfo模式的uri重写成普通模式

                        rewrite  ^/index.php(.*)$  /index.php?s=$1  last;

                        break;

                }

        }

일반에 s= 추가 mode /parameter/or m=model&a=actionthinkPHP URL 모드 구성file/Application/Common/conf.php 1 ' URL_MODEL' =>3 nginx pathinfo 모드 구성nginx는 기본적으로 pathinfo 모드를 지원하지 않으며 다시 작성합니다. 을 지원하려면 규칙을 수동으로 추가해야 합니다. 1. /nginx/conf/vhost 디렉터리에서 사이트 구성 파일을 엽니다. 2. 서버 노드에 다음 위치 규칙을 추가합니다:
1 2 34567891011 #uri위치 ~^/index.php(.* ) 스팬>                                                                                        if(!-e$request_filename )                                                                               .*)$ / index.php?s= $1 마지막; 스팬>                                                                🎜> } } 스팬>

3. nginx 구성 정보 다시 로드

1

service nginx reload

1

서비스 nginx 다시 로드

완료! 위 내용은 thinkphp nginx php-fpm url rewrite로 인해 발생하는 404 오류에 대한 내용을 포함하여 PHP 튜토리얼에 관심이 있는 친구들에게 도움이 되기를 바랍니다.
성명:
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.