NGINX を使用して URL をリダイレクトするにはどうすればよいですか? (一時的および永続的)

公開: 2024-01-26

目次
リダイレクトとは何ですか?
Nginx リダイレクトの必要性は何ですか?
一般的な Nginx リダイレクト方法 (一時的および永続的)
Nginx を使用して URL をリダイレクトする方法 (一時的および永続的)
Nginx 構文をチェックする
Nginxサーバーを再起動します
まとめ
よくある質問

リダイレクトとは何ですか?

Nginx に関して、リダイレクトは Web サイトのトラフィックをある URL から別の URL に移動する Web サーバー機能です。 これは、訪問者を別の場所に自動的に簡単にリダイレクトできる最も便利な機能の 1 つです。

実行できるリダイレクトには多数の種類がありますが、最も重要で一般的に使用される 2 つは、永続的リダイレクト (301) と一時的なリダイレクト (302) です。

この記事では、www から www 以外へのリダイレクト、ドメインへの Nginx リダイレクト、HTTP から HTTPS への Nginx リダイレクトなどのリダイレクト方法を例とともに示します。


読む: WordPress リダイレクト URL はどのように機能しますか? 5 つの最良の方法


Nginx リダイレクトの必要性は何ですか?

  • Nginx は、基準に基づいて Web サイトの URL を別のアドレスにリダイレクトするという重要な機能の 1 つを提供します。
  • Nginx リダイレクトは非常にユーザーフレンドリーで構成が簡単であるため、Web サイトの URL を非常に柔軟に管理できます。
  • これは、特にある CMS から別の CMS に移行する場合に、ページの SEO ランキングを維持するのに非常に役立ちます。
  • リダイレクト機能は、URL 構造が変更されても SERP の位置を維持するのにも役立ちます。

一般的な Nginx リダイレクト方法 (一時的および永続的)

すでに述べたように、複数の種類のリダイレクト方法が利用可能ですが、実際には、一般的に使用されるのは一時リダイレクトと永続リダイレクトの 2 つだけです。

一時的なリダイレクト (応答コード: 302 Found)

  • 名前自体から、一時的な薬が何をするのかを推測できます。 この方法は、ページの場所をある場所から別の場所に一時的に変更するという目的に役立ちます。
  • 応答コード: 302 Found は、これらのリダイレクト中のページの一時的な転送を示すために使用されます。
  • 主にウェブサイトのメンテナンス中に使用されます。 一時的なリダイレクトは、Web サイトが一時的に利用できないことをトラフィックまたはユーザーに通知します。
  • また、不完全なページを別のポイントまたはホームページにリダイレクトするために使用することもできます。
  • シナリオの例:訪問者は Web サイトのページに移動しますが、メンテナンスのため、Web サイトが現在メンテナンス中であることを示す通知にリダイレクトされます。
Temporary Redirection
一時的なリダイレクト (応答コード: 302 Found)

永続的なリダイレクト (応答コード: 301 が見つかりました)

  • Permanent Nginx Redirect は、ページ ドメインを永続的に再配置するために使用されます。
  • 301 リダイレクトは、このコンテキストでページの永続的な移動を指定するために使用されます。
  • このリダイレクトは主に、ユーザーがドメイン名を変更し、Web サイトのトラフィックが古い場所にアクセスすることを望まない場合に使用されます。
Permanent Redirection
永続的なリダイレクト (応答コード: 301 が見つかりました)

Nginx を使用して URL をリダイレクトする方法 (一時的および永続的)

始める前に、まず NGINX が VPS または仮想プライベート サーバーにインストールされていることを確認する必要があります。 その後、SSH 経由で VPS にアクセスします。 Wpoven では、SSH コマンド ライン コンソール経由でサイトに簡単にアクセスできます。


読む: SSH 経由で WPOven サイトにアクセスできますか


NGINXの構成セットアップ

  • NGINX 構成ファイルの場所: NGINX の構成は通常、サーバーのディレクティブと設定を含むプレーン テキスト ファイルである .conf ファイルに保存されます。
  • デフォルトの場所: NGINX 構成ファイルのデフォルトの場所は、多くの場合、サイトのドキュメント ルート ディレクトリ内です。 この場合、パス/etc/nginx/sites-available/directory_name.confが示されています。
  • ドキュメント ルート ディレクトリ:このディレクトリは、Web サイトのファイルが保存される場所です。 ドキュメントルートは異なる場合があります。 単一サイト サーバーの場合は、 /htmlディレクトリにある可能性があります。 サーバーが複数のサイトをホストしている場合、ドキュメント ルートは/domain.comなどの特定のドメイン ディレクトリ内にある可能性があります。
  • 構成ファイルの名前付け: .conf ファイルの名前はサイトに対応します。 たとえば、サイトが/htmlディレクトリにある場合、.conf ファイルの名前はhtml.confになる可能性があります。 /domain.comようなディレクトリにある場合、.conf ファイルの名前は、 domain.com.confになります。
  • デフォルトの構成ファイル: /etc/nginx/sites-available/directory内には、通常、テンプレートとして使用できるデフォルトのファイルがあります。 このファイルには、ニーズに合わせてコピーまたは変更できる基本構成が含まれている場合があります。
  • 新しい構成ファイルの作成:または、新しい .conf ファイルを作成するオプションもあります。 たとえば、サイトの構造と命名規則に基づいて、 html.confまたはdomain.com.confという名前のファイルを作成できます。

Nginx には、「rewrite」ディレクティブと呼ばれる利用可能な組み込みツールがあることに驚かれるかもしれません。 リダイレクトを簡単に行うことができる非常に便利なツールです。 最も良い点は、これに関して特別なことをする必要はなく、新しい Nginx をインストールするたびに自動的に存在することです。

この「rewrite」ディレクティブは、基本的なリダイレクトを行うためだけのものではなく、非常に多用途です。 つまり、永続的と一時的な 2 種類のリダイレクトを作成できるようになります。

必要なのは、古い URL と新しい URL の 2 つの引数だけを渡すことだけです。 以下に参考までにいくつかの例を示します。 サーバー設定に次の行を入力するだけです。

まず、ターミナルで次のコマンドを入力して構成ファイルを開きます。

$ sudo vi /etc/nginx/nginx.conf

その後、要件に応じて以下のコマンドを使用します。

1. ページ間の Nginx リダイレクト

一時的なページ間の Nginx リダイレクト

server {
# Temporary redirect to an individual page
rewrite ^/oldpage$ http://www.example.com/newpage redirect;
}

永続的なページからページへの Nginx リダイレクト

server {
# Permanent redirect to an individual page
rewrite ^/oldpage$ http://www.example.com/newpage permanent;
}

上記のコマンドから、永続的なリダイレクトを作成したい場合は、ディレクティブの末尾にある「redirect」を「permanent」に置き換えるだけで済むことがわかりました。

2. WWW から非 www への Nginx リダイレクト

永続的な www から非 www へのリダイレクト:

server {
# Permanent redirect to non-www
server_name www.example.com;
rewrite ^/(.*)$ http://example.com/$1 permanent;
}


: www 以外から www にリダイレクトしたい場合は、上記のコマンドで言及されている Web サイトの URL を置き換えるだけで済みます。 つまり、www.example.com を example.com に、またはその逆に置き換えます。


3. Nginx で URL を HTTP から HTTPS にリダイレクトするにはどうすればよいですか?

このリダイレクトを実行する前に、SSL 証明書をインストールすることを忘れないでください。 HTTPS へのリダイレクトには利点があります。 これは、あらゆる MIMT 攻撃、データ盗難などから Web サイトを保護するのに役立ちます。また、ポートさえ異なります。たとえば、HTTP は 80 ポートを使用しますが、HTTPS は 443 を使用します。

したがって、あなたと訪問者の間で共有されるすべての機密情報を保護するには、次のコマンドが必要です。

server {
listen 80;
server_name www.domain.tld;
return 301 https://www.domain.tld$request_uri;
}

4. Nginx URL を別の URL にリダイレクトする

永続的にリダイレクトする場合、つまり nginx リダイレクトを別の URL 301 に行う場合は、次のコマンドを使用します。

古いドメインから新しいドメインへ、

server {
listen 80;
listen 443 ssl;
server_name olddomain.com www.olddomain.com;
return 301 $scheme://www.newdomain.com$request_uri;
}

または

server {
# Permanent redirect to new URL
listen 443 ssl;
# Add this line to listen on the HTTPS port and enable SSL server_name olddomain.com;
ssl_certificate /path/to/your/ssl_certificate.crt; # Update with the actual path to your SSL certificate
ssl_certificate_key /path/to/your/ssl_certificate_key.key; # Update with the actual path to your SSL certificate key
# Additional SSL settings can be configured here
rewrite ^/(.*)$ https://newdomain.com/$1 permanent;
# Update to use 'https' protocol
}

  • Nginx の「rewrite」ディレクティブと呼ばれるツールを使用して、Web サイトのリダイレクトを設定しました。
  • ^/(.*)$ URL の最後のスラッシュ ( / ) 以降のすべてを使用する正規表現です。
  • たとえば、誰かがhttp://olddomain.com/index.htmlにアクセスしようとすると、 index.html部分が使用されます。
  • したがって、 http://olddomain.com/index.htmlにアクセスしようとしている場合は、 http://newdomain.com/index.htmlにスムーズにリダイレクトされます。
  • その目的は、ユーザーを新しいドメイン上の同じコンテンツにシームレスにリダイレクトすることです。
  • このリダイレクトが永続的であることを確認するために、 rewriteディレクティブの後に特別なキーワード「Permanent」を追加しました。
  • これにより、いわゆる HTTP 301 ステータス コードを使用して、これが永続的な変更であることがブラウザと検索エンジンの両方に通知されます。

5. Nginx は URL を変更せずに別のドメインにリダイレクトします

URL を変更せずに、ドメイン olddomain.com を newdomain.com にリダイレクトするとします。 つまり、olddomain.com と入力すると、newdomain.com にリダイレクトされますが、URL には依然として olddomain.com が表示されるはずです。

アプローチ方法は次のとおりです。

server {
listen 80;
server_name olddomain.com;

location / {
proxy_pass http://newdomain.com;
proxy_set_header Host $host;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_set_header X-Forwarded-Proto $scheme;
proxy_redirect off;
}
}

6. 特定のサイトの Nginx リダイレクト

server {
listen 80;
server_name example.com;
return 301 http://newexample.com$request_uri;
}


Nginx 構文をチェックする

すべての nginx 構文が正しいことを確認するには、次のコマンドを使用します。

nginx -t

出力が空であることが判明した場合は、構文が正しいことを意味しており、これらの変更を有効にするには Nginx サーバーを再起動する必要があります。


Nginxサーバーを再起動します

次のコマンドを使用して、Nginx サーバーを再起動してこれらのルールを有効にすることを忘れないでください。

sudo systemctl restart Nginx


まとめ

すでに上で述べたように、Nginx は永続的および一時的な Nginx リダイレクトを簡単に作成できる、最も強力でユーザーフレンドリーな Web サーバーであることが判明しました。

このブログを読んだ後は、NGINX を使用してリダイレクト URL を作成する方法がわかりました。 nginx が HTTP から HTTPS に、あるドメインから別のドメインにリダイレクトするかどうか。

また、リダイレクトが SEO ランキングにどのような影響を与えるかを学びましたので、常に正しいリダイレクト タイプを使用するようにしてください。

この便利な機能を使用すると、トレンドや要件に応じて Web サイトの構造を簡単に変更でき、トラフィックや SERP ランキングの低下を心配する必要がなくなります。

WPOven は、次の NGINX プロジェクト向けに WordPress 管理のホスティング オプションを提供します。 お客様にとって最適なオプションについてご相談させていただきますので、お問い合わせください。

ご質問やご提案がございましたら、以下のコメント欄にご記入ください。


よくある質問

nginxでURLをリダイレクトするにはどうすればよいですか?

Nginx には、「rewrite」ディレクティブと呼ばれる利用可能な組み込みツールがあります。 リダイレクトを簡単に行うことができる非常に便利なツールです。 最も良い点は、これに関して特別なことをする必要はなく、新しい Nginx をインストールするたびに自動的に存在することです。

Nginxのリダイレクトコードとは何ですか?

nginx は非常に多用途で、応答コードが 301 である永続的なリダイレクトと、応答コード 302 である一時的な削減の 2 種類のリダイレクトを提供します。

NGINX は何に使用されますか?

Nginx は、多用途で高性能な Web サーバーおよびリバース プロキシ サーバーです。 一般的に次の目的で使用されます: Web サーバーリバース プロキシ サーバーロード バランサーSSL/TLS 終端キャッシュコンテンツ配信ネットワーク (CDN)API ゲートウェイWebSocket サポートセキュリティ、および高可用性アーキテクチャ