ホームページ  >  記事  >  バックエンド開発  >  nginxルーティング設定をキャンセルindex.php

nginxルーティング設定をキャンセルindex.php

WBOY
WBOYオリジナル
2023-05-22 21:00:071414ブラウズ

Web サーバーでは、特定のファイルやディレクトリが見つからないという状況がよく発生します。現時点では、この問題を解決するために、デフォルトでindex.htmlまたはindex.phpをデフォルトファイルとして使用することがよくあります。 Nginx では、index.php はデフォルト ファイルの 1 つです。

ただし、URL にindex.php を表示したくない場合もありますが、これは URL を美しくしたり、Web サイトのセキュリティを向上させる上で一定の重要性があります。では、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 では、各 Web サイトに仮想ホストがあります。 。バーチャルホストはWebサイトごとに独立した環境を提供できるため、Webサイトごとに異なる機能を設定できます。ここでは、仮想ホストごとに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;
  }
}

上記の構成ファイルでは、インデックスをキャンセルしました.php とその他のデフォルト ファイルを設定します。同時に、location ブロックで 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 が存在するかどうかを確認し、location ブロックに try_files ディレクティブを渡します。存在しない場合 存在する場合は、「index.php」ファイルを使用します。

4. .htaccess を介してindex.php をキャンセルする

Web サーバーとして Nginx を使用していて、.htaccess ファイルをサポートしていない場合は、同様のファイル .user を使用できます。イニ。 .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 をキャンセルする 4 つの方法を紹介します。これらの方法の 1 つまたは複数を使用して、独自の Web サイトのニーズに基づいて独自の目標を達成できます。どの方法を使用しても、非常に簡単かつ迅速に実行できます。より多くの訪問者を引き付け、Web サイトの SEO 効果を向上させるために、Web サイトにさらにユーザーフレンドリーな URL を提供できます。

以上がnginxルーティング設定をキャンセルindex.phpの詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。