nginx 라우팅 구성 취소 index.php

WBOY
풀어 주다: 2023-05-22 21:00:07
원래의
1346명이 탐색했습니다.

웹 서버에서는 특정 파일이나 디렉터리를 찾을 수 없는 상황이 자주 발생합니다. 이때 우리는 이 문제를 해결하기 위해 기본적으로 index.html이나 index.php를 기본 파일로 사용하는 경우가 많습니다. Nginx에서는 index.php가 기본 파일 중 하나입니다.

그러나 때때로 URL에 index.php를 표시하고 싶지 않은 경우가 있습니다. 이는 URL을 아름답게 하거나 웹사이트 보안을 향상시키는 데 중요한 의미를 갖습니다. 그렇다면 Nginx에서 index.php를 취소하는 방법은 무엇입니까?

1. Nginx 구성 파일 수정

Nginx를 설치했고 index.php를 취소하려면 Nginx 구성 파일을 수정해야 합니다. Ubuntu 시스템에서 Nginx 구성 파일의 경로는 "/etc/nginx/sites-available/default"입니다.

파일에서 "index" 지시문을 찾으세요. 즉:

index index.html index.htm index.nginx-debian.html;
로그인 후 복사
로그인 후 복사

여기에서 "index.php"를 삭제하고 다음으로 변경해야 합니다:

index index.html index.htm index.nginx-debian.html;
로그인 후 복사
로그인 후 복사

또는 index.php의 순위를 뒤처지게 하려면 다음과 같이 하세요.

index index.html index.htm index.nginx-debian.html index.php
로그인 후 복사

2. Nginx 가상 호스트 구성

Nginx에서는 각 웹사이트에 가상 호스트가 있습니다. 가상 호스트는 각 웹사이트마다 독립적인 환경을 제공하여 각 웹사이트마다 다른 기능을 설정할 수 있습니다. 여기서는 각 가상 호스트에 대해 index.php를 구성하고 취소해야 합니다.

1. Nginx 가상 호스트 구성 파일 열기

sudo nano /etc/nginx/sites-available/default
로그인 후 복사

2. 가상 호스트에서 index.php 취소

server {
  listen 80 default_server;
  listen [::]:80 default_server;

  root /var/www/html;

  # 列出默认文件
  index index.html index.htm;

  # 取消index.php,即移除它
  location / {
    try_files $uri $uri/ =404;
  }

  # 处理PHP脚本
  location ~ .php$ {
    include snippets/fastcgi-php.conf;
    fastcgi_pass unix:/run/php/php7.4-fpm.sock;
  }

  # 处理网站资源
  location ~* .(js|css|png|jpg|jpeg|gif|ico)$ {
    expires 30d;
    add_header Cache-Control "public, no-transform";
  }

  # 处理网站图标
  location /favicon.ico {
    access_log off;
    log_not_found off;
  }
}
로그인 후 복사

위 구성 파일에서는 index.php를 취소하고 다른 기본 파일을 설정했습니다. 동시에 위치 블록에서 try_files 지시어를 사용하여 URL이 존재하지 않는 경우 404 오류가 반환됩니다.

3. nginx.conf를 적절하게 수정하세요

Nginx에서는 nginx.conf를 수정하여 index.php 표시를 취소할 수도 있습니다. http 블록에 지시어를 추가해야 합니다:

http {
    ...

    # 将index.php从默认文件列表中删除
    index  index.html index.htm;

    # 取消index.php
    location / {
        try_files $uri $uri/ /index.php?$query_string;
    }

    ...
}
로그인 후 복사

위 구성에서는 기본 파일 목록에서 index.php를 제거하여 URL이 존재하는지 확인한 다음 해당 위치의 try_files 지시어를 통해 URL이 존재하는지 확인합니다. 차단하고, 존재하지 않는 경우에는 "index.php" 파일을 이용하세요.

4. .htaccess를 통해 index.php 취소

Nginx를 웹 서버로 사용하고 있고 Nginx가 .htaccess 파일을 지원하지 않는 경우 유사한 파일인 .user.ini를 사용할 수 있습니다. .user.ini는 PHP만 지원하는 htaccess 파일입니다. 이를 통해 PHP 구성 정보를 설정할 수 있습니다. 다음 파일을 .user.ini로 저장하세요.

; PHP settings:
cgi.fix_pathinfo = 0
cgi.fix_pathinfo = false
cgi.fix_pathinfo = off

; nginx settings:
try_files $uri $uri/ /index.php?$query_string;

; User-defined settings:
index index.php index.html index.htm
로그인 후 복사

그 중 try_files 파일 명령을 시도하여 URL이 존재하는지 확인합니다. 존재하지 않으면 "index.php" 파일을 사용합니다. 동시에 다른 기본 파일도 설정합니다.

5. 요약

이 글에서는 nginx에서 index.php를 취소하는 네 가지 방법을 소개합니다. 이러한 방법 중 하나 이상을 사용하여 웹 사이트의 요구 사항에 따라 목표를 달성할 수 있습니다. 어떤 방법을 사용하든 매우 간단하고 빠릅니다. 귀하의 웹사이트에 보다 사용자 친화적인 URL을 제공하여 더 많은 방문자를 유치하고 웹사이트의 SEO 효과를 향상시킬 수 있습니다.

위 내용은 nginx 라우팅 구성 취소 index.php의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

원천:php.cn
본 웹사이트의 성명
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.
인기 튜토리얼
더>
최신 다운로드
더>
웹 효과
웹사이트 소스 코드
웹사이트 자료
프론트엔드 템플릿
회사 소개 부인 성명 Sitemap
PHP 중국어 웹사이트:공공복지 온라인 PHP 교육,PHP 학습자의 빠른 성장을 도와주세요!