Nginx サーバーで URL リンクを設定する方法

Nginx サーバーで URL リンクを設定する方法

LNMPのようなアーキテクチャを持つウェブサイトは、一般的にPHPフレームワークに基づいて開発されています。PHPフレームワークは一般的にエレガントなリンクを重視しています。たとえば、Laravel、CodeIgniter、ThinkPHPなどはすべてこのリンクモードをサポートしています。これは、サーバー構成ではURL書き換えとも呼ばれます。現在、ほとんどのフレームワークは単一のエントリindex.phpを使用し、MVCモードに基づいて、一般的に/index.php/Model/functionのリクエストメソッドです。したがって、index.phpエントリファイルを削除することができれば、URL全体がシンプルで美しく見え、Python、Javaなどで開発されたウェブサイトのURLモードが統一されます。ApacheとnginxはどちらもこのURLモードをサポートしています。以下はnginxの構成方法です。

まず、nginx のインストール ディレクトリに入ります。前回の記事で、設定ファイル nginx.conf には、サイトの設定を指定するための server {} などのコード セグメントがあることを説明しました。その他にも多くの設定があります。URL 書き換えを実装するには、設定ファイルまたはインクルードされた設定ファイルの対応する server {} コード セグメントに次のコードを追加します。

  位置 / {
    try_files $uri $uri/ /index.php?$query_string;
  } 

元の location / {} コードがすでに存在する場合は、図のコード行を追加するだけです。同じルートの設定は通常まとめられているためです。保存後、nginx サーバーを再起動して有効にします。サービスに nginx が追加されている場合は、/etc/init.d/nginx restart を使用して再起動できます。再起動後、URL が整頓されます。

インターネット上の URL を書き換える別の方法があります。同じ場所に次のコードを追加して解決します。

位置 / {
    if (!-e $request_filename) {
      ^(.*)$ /index.php?s=$1 を最後に書き換えます。
      壊す;
    }
  }

保存後、nginx を再起動すると、URL 美化の効果も得られます。ただし、インターネット上のいくつかの記事によると、URL 美化には最初の方法が推奨されています。

以上がこの記事の全内容です。皆様の勉強のお役に立てれば幸いです。また、123WORDPRESS.COM を応援していただければ幸いです。

以下もご興味があるかもしれません:
  • Ubuntu 18.04 で Nginx+RTMP+HLS+HTTPFLV サーバーを構成してオンデマンド/ライブ ブロードキャスト/録画機能を実現する方法の詳細説明
  • Ubuntu 14 に Nginx-RTMP ストリーミング サーバーをインストールするチュートリアル
  • Nginx-rtmp はライブメディアのリアルタイムストリーミング効果を実現します
  • Nginxはnginx-rtmp-moduleモジュールを使用してライブブロードキャストルーム機能を実現します。
  • Mac で nginx+rtmp ライブ サーバーを構築するための詳細な手順
  • nginxでイメージサーバーを構築する手順の詳しい説明(ルートとエイリアスの違い)
  • Nginxを使用してストリーミングメディアサーバーを構築し、ライブブロードキャスト機能を実現する
  • Linux サーバー上のローカル静的リソースにアクセスするために nginx を使用する方法
  • Nginx は rtmp ライブ サーバーの実装コードを構築します

<<:  JavaScript でグレイウルフのポットビーティングゲームを実装

>>:  MySQL 8.0 の降順インデックス

推薦する

Docker イメージのエクスポート、インポート、コピーの例の分析

最初の解決策は、イメージを公開イメージリポジトリにプッシュし、それをプルダウンすることです。 2 番...

MySQLでストアドプロシージャをデバッグする最も簡単な方法

同僚から、一時テーブルを使用して変数データを挿入して表示する方法を教わったことがありますが、この方法...

3分でUbuntu 16.04を初期化し、Java、Maven、Docker環境をデプロイする

Fast-Linux プロジェクト アドレス: https://gitee.com/uitc/Fas...

Reactのref属性を深く理解する方法

目次概要1. Refsオブジェクトの作成1.1 React.createRef() 1.2React...

この構成ファイルの排他ロックに失敗したという VMware 仮想マシンのプロンプトの解決方法

VMware が異常シャットダウンした後、再起動すると「この構成ファイルを排他的にロックできませんで...

Nginx Webサーバーのサンプルコードの設定方法の詳細な説明

概要今日は主に、NGINX を Web サーバーとして設定する方法を共有します。内容は次のとおりです...

Dockerfile を使用して Docker イメージをカスタマイズする方法

Dockerfile を使用したイメージのカスタマイズイメージのカスタマイズとは、実際には各レイヤー...

MySQL5.7 mysqldump バックアップとリカバリの実装

MySQL バックアップコールドバックアップ:停止服務進行備份,即停止數據庫的寫入ホットバックアップ...

Dockerコンテナのk8sデプロイメントの実装

環境: (docker、k8s クラスター)、前回 docker で起動した Java プログラムの...

Vueはシンプルなマーキー効果を実装します

この記事では、Vueの具体的なコードを共有して、シンプルなマーキー効果を実現しています。具体的な内容...

フレックスレイアウトは左のテキストオーバーフローを実現し、右のテキストの適応を省略します

テキストの長さに応じて、左側のテキストの幅を自動調整できる状況を実現したい。1行が表示できない場合、...

crontab の実行結果を電子メールでユーザーに通知する方法

症状Centos7 ホストに crontab タスクを設定しましたが、時間が来るとメールを実行して「...

dockerfile-maven-plugin 使用ガイドの概要

目次pom 構成Setting.xml 構成ログインステータスログインが必要ですログインは必要ありま...

VueプロジェクトでReactを書く方法の詳細

jsx/tsxファイルを直接作成できます今回のプロジェクト構成は以下のとおりです。 vueファイルで...

MySQL マスタースレーブ同期メカニズムと同期遅延問題追跡プロセス

序文DBA として、仕事中に MySQL マスターとスレーブの同期遅延の問題に遭遇することがよくあり...