>  기사  >  백엔드 개발  >  PHP_SELF, PATH_INFO, SCRIPT_NAME 및 REQUEST_URI의 주요 차이점은 무엇입니까?

PHP_SELF, PATH_INFO, SCRIPT_NAME 및 REQUEST_URI의 주요 차이점은 무엇입니까?

Patricia Arquette
Patricia Arquette원래의
2024-11-02 07:28:02810검색

What are the key differences between PHP_SELF, PATH_INFO, SCRIPT_NAME, and REQUEST_URI?

PHP_SELF, PATH_INFO, SCRIPT_NAME 및 REQUEST_URI 이해**

PHP 애플리케이션을 개발할 때 이러한 서버 변수 간의 차이점을 이해하는 것이 중요합니다. . 사용법은 다음과 같습니다.

PHP_SELF

  • 일반적으로 현재 스크립트 파일을 가리킵니다. /index.php/faq/whatever
  • CodeIgniter에서는 요청이 메인으로 라우팅되므로 항상 index.php입니다. Controller.

PATH_INFO

  • 스크립트 이름 뒤에 경로 정보가 포함됩니다(쿼리 매개변수 제외). /faq/whatever
  • URI의 특정 섹션에 액세스하는 데 유용합니다.

SCRIPT_NAME

  • 실행 중인 실제 PHP 스크립트 파일을 가리킵니다. /test.php
  • PHP_SELF와 달리 경로 정보나 쿼리 매개변수가 포함되지 않습니다.

REQUEST_URI

  • 경로 정보 및 쿼리 매개변수를 포함한 전체 요청 URI를 나타냅니다. 예를 들어 /test.php?foo=bar
  • 서버 구성에 액세스하지 않고 전체 URL을 확인하는 데 유용합니다.

실질적인 차이점

예 1: PHP_SELF 대 PHP_SELF SCRIPT_NAME

요청된 URL이 /test.php/foo/bar:

  • PHP_SELF: /test 형식인 경우. php/foo/bar
  • SCRIPT_NAME: /test.php

예 2: REQUEST_URI 대 SCRIPT_NAME

비어 있지 않은 쿼리 문자열이 URL에 입력된 경우:

  • SCRIPT_NAME: /test.php
  • REQUEST_URI: /test.php?foo=bar

예 3: REQUEST_URI 대 SCRIPT_NAME 아파치 모드와 함께 다시 작성

서버 측 리디렉션을 사용하면 예를 들어 /test.php/test2.php:

    요청_URI:
  • /test.php
  • SCRIPT_NAME:
  • /test2.php

예 4: REQUEST_URI 대 SCRIPT_NAME(오류 포함) 처리

  • Apache mod_rewrite를 사용하면

    /test.php에서 404 오류가 발생하면 다음이 발생할 수 있습니다.

      REQUEST_URI:
    • /test.php
    • SCRIPT_NAME:
    • /404error.php
어떤 서버 변수를 선택할지 선택 사용은 특정 애플리케이션 요구 사항에 따라 다릅니다. 예를 들어 쿼리 매개변수 없이 경로 정보에 액세스해야 하는 경우 PATH_INFO가 적합합니다. 전체 요청 URI를 원할 경우 REQUEST_URI가 이 정보를 제공합니다.

위 내용은 PHP_SELF, PATH_INFO, SCRIPT_NAME 및 REQUEST_URI의 주요 차이점은 무엇입니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

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