>백엔드 개발 >PHP 튜토리얼 >NGINX를 사용하여 URL에서 .php 및 .html 확장자를 제거하는 방법은 무엇입니까?

NGINX를 사용하여 URL에서 .php 및 .html 확장자를 제거하는 방법은 무엇입니까?

Patricia Arquette
Patricia Arquette원래의
2024-11-16 19:42:031019검색

How to Remove .php and .html Extensions from URLs Using NGINX?

NGINX를 사용하여 URL에서 .php 및 .html 확장자를 모두 제거하는 방법

소개

웹 콘텐츠를 제공할 때, 미적 또는 보안상의 이유로 URL에서 파일 확장자를 숨기는 것이 바람직할 수 있습니다. 이는 널리 사용되는 웹 서버 소프트웨어인 NGINX를 사용하여 달성할 수 있습니다.

문제

목표는 기능을 유지하면서 URL에서 .php 및 .html 확장자를 모두 제거하는 것입니다. . 예를 들어, URL http://www.mydomain.com/indexhtml.html은 http://www.mydomain.com/indexhtml로 표시되어야 하고, http://www.mydomain.com/indexphp.php는 다음과 같이 표시되어야 합니다. http://www.mydomain.com/indexphp로 표시됩니다.

해결 방법

다음 NGINX 구성을 사용하여 원하는 결과를 얻을 수 있습니다.

location / {
    try_files $uri $uri.html $uri/ @extensionless-php;
    index index.html index.htm index.php;
}

location ~ \.php$ {
    try_files $uri =404;
}

location @extensionless-php {
    rewrite ^(.*)$ .php last;
}

설명

  • location /: 이 블록은 웹사이트의 루트 디렉토리에 대한 모든 요청에 ​​적용됩니다.
  • try_files: 이 지시문은 $uri에 지정된 파일을 찾으려고 시도합니다. 파일이 존재하지 않으면 $uri.html 또는 동일한 이름의 디렉토리를 찾으려고 시도합니다. 둘 다 없으면 요청을 @extensionless-php 위치 블록으로 전달합니다.
  • index: 이 지시문은 $uri가 디렉토리를 가리킬 때 제공할 기본 파일을 지정합니다.
  • location ~ .php$: 이 블록은 .php로 끝나는 요청과 일치합니다.
  • try_files $uri =404: 이 지시문은 다음과 같은 경우 404 오류를 반환합니다. URI는 정확히 .php 파일입니다(디렉토리 제외).
  • location @extensionless-php: 이 블록은 재배선이 일어나는 곳입니다.
  • 다시 작성: 이 지시문은 .php 확장자가 추가된 URI에 요청을 다시 작성합니다. 마지막 플래그는 추가 재작성을 방지합니다.

이 구성을 구현하면 .php 및 .html 확장자가 모두 URL에서 자동으로 제거되어 깔끔하고 사용자 친화적인 탐색 환경을 제공합니다.

위 내용은 NGINX를 사용하여 URL에서 .php 및 .html 확장자를 제거하는 방법은 무엇입니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

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