nginx pathinfo 설정

2313 단어 nginxpath_info
선언:
        우선 pathinfo 모드 는 무엇 일 까요?
        pathinfo 는 위 정적 인 개념 입 니 다. 위 정적 페이지 는 정적 URL 과 동적 URL 이 서로 통 하 는 다리 입 니 다. 동적 사이트 주 소 는 URL 재 작성 수단 으로 동적 인 파 라 메 터 를 제거 하고 URL 을 정적 으로 만 드 는 것 을 말 합 니 다. 그러나 실제 웹 디 렉 터 리 에 URL 을 다시 쓰 지 않 았 습 니 다.쉽게 말 하면 의사 정적 URL 은 서버 를 통 해 위장 파일 이름 이나 주 소 를 바 꾸 어 이 페이지 를 정적 페이지 와 유사 하 게 하 는 것 이지 만 서버 에 독립 적 으로 존재 하 는 파일 이 없 으 며 본질 적 으로 동적 페이지 입 니 다.
       동적 주소http://www.cxzaixian.com/index.php?m=topic&a=detail&tid=82  위 정적 모드 로 전환 후http://www.cxzaixian.com/index.php/topic/detail/tid/82.html。 
       apache 서버 자체 가 pathinfo 를 지원 합 니 다. 몇 가지 설정 을 간단하게 수정 하면 됩 니 다.pathinfo 를 지원 하 는 설정 을 한 후 php 프로그램 에서SERVER ['PATH INFO'] 변 수 는 pathinfo 값 을 / topic / detail / tid / 82. html 로 가 져 옵 니 다.우 리 는 phop 논리 코드 를 통 해 contrller 파일, action 방법, 그리고 나머지 동적 인 파 라 메 터 를 쉽게 분석 하여 정확 한 웹 페이지 응답 을 되 돌 릴 수 있 습 니 다.
       그러나 우리 가 말 하고 자 하 는 nginx 서버 는 기본적으로 pathinfo 모드 접근 을 지원 하지 않 습 니 다.실질 적 으로 nginx 는 환경 변 수 를 설정 하지 않 습 니 다 PATHINFO 의 값 으로 인해 php 응용 프로그램 이SERVER ['PAHT INFO'] path 가 져 오기info, 대응 하 는 동적 인 파 라 메 터 를 분석 할 수 없습니다.
       자, 드디어 본문의 본론 입 니 다. nginx 는 pathinfo 의 설정 을 다음 과 같이 지원 합 니 다.   
ngingx 설정 파일 nginx. conf 수정
server 에 있 는 location 항목:
수정 전:
# :     $   
location ~ \.php$ { 
    root           html;
    fastcgi_pass   127.0.0.1:9000;
    fastcgi_index  index.php;
    fastcgi_param  SCRIPT_FILENAME  $document_root$fastcgi_script_name;
    include        fastcgi_params;
    # :          
}

수정 후:
location ~ \.php {
    root           html;
    fastcgi_pass   127.0.0.1:9000;
    fastcgi_index  index.php;
    fastcgi_param  SCRIPT_FILENAME  $document_root$fastcgi_script_name;
    include        fastcgi_params;
    #     $path_info ,    pathinfo  
    set $path_info "";
    #     $real_script_name,        
    set $real_script_name $fastcgi_script_name;
    #                
    if ($fastcgi_script_name ~ "^(.+?\.php)(/.+)$") {
        #           $real_script_name
        set $real_script_name $1;
            #               $path_info
            set $path_info $2;
    }
    #  fastcgi     
    fastcgi_param SCRIPT_NAME $real_script_name;
    fastcgi_param PATH_INFO $path_info;
}

2. nginx 와 phpcgi 를 다시 시작 합 니 다.

좋은 웹페이지 즐겨찾기