ホームページ  >  記事  >  バックエンド開発  >  NGINX を使用して URL から .php および .html 拡張子を削除する方法

NGINX を使用して URL から .php および .html 拡張子を削除する方法

Patricia Arquette
Patricia Arquetteオリジナル
2024-11-16 19:42:03909ブラウズ

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

NGINX を使用して URL から .php 拡張子と .html 拡張子の両方を削除する方法

はじめに

Web コンテンツを提供する場合、見た目やセキュリティ上の理由から、URL からファイル拡張子を非表示にすることが望ましい場合があります。これは、人気のある Web サーバー ソフトウェアである NGINX を使用して実現できます。

問題

目標は、機能を維持しながら .php 拡張子と .html 拡張子の両方を URL から削除することです。 。たとえば、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 /: このブロックは、Web サイトのルート ディレクトリへのすべてのリクエストに適用されます。
  • 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 中国語 Web サイトの他の関連記事を参照してください。

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