GNU/Linux >> Linux の 問題 >  >> Linux

Nginxを使用してURLをリダイレクトする方法

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

リダイレクトは、あるURLから別のURLにトラフィックをリダイレクトするWebサーバー機能です。リダイレクトは、必要が生じた場合の重要な機能です。リダイレクトにはいくつかの種類がありますが、より一般的な形式は一時的および永続的です。この記事では、vhostファイルを介したリダイレクト、安全なHTTPS接続の強制、wwwと非wwwへのリダイレクト、および一時的なリダイレクトと永続的なリダイレクトの違いの例をいくつか紹介します。

注これはNginxサーバーであるため、.htaccessルールは適用されません。他の人気のあるWebサーバーであるApacheを使用している場合は、この記事が役立ちます。

リダイレクトの一般的な方法

一時的なリダイレクト(応答コード:302 Found)は、URLが別の場所から一時的に提供されている場合に役立ちます。たとえば、これらはメンテナンスを実行するときに役立ち、ユーザーをメンテナンスページにリダイレクトできます。

ただし、永続的なリダイレクト(応答コード:301永続的に移動)は、ブラウザに古いURLがあったことを通知します。この古いURLは忘れて、アクセスを試みないようにする必要があります。これらは、コンテンツがある場所から別の場所に移動したときに役立ちます。

リダイレクトする方法

Nginxに関しては、 .conf内で処理されます ファイル。通常、サイトのドキュメントルートディレクトリにあります。 / etc / nginx / sites-available / directory_name conf 。ドキュメントのルートディレクトリは、サイトのファイルが存在する場所であり、サーバー上に1つのサイトがある場合は、/htmlにある場合があります。または、サーバーに複数のサイトがある場合は、/domain.comにあります。どちらの方法でも、それが.confファイル名になります。 / etc / nginx / sites-available /デフォルトのディレクトリがあります リダイレクトを追加するためにコピーまたは使用できるファイル。または、新しいファイル名html.confまたはdomain.com.confを作成できます。

注新しいファイルを作成する場合は、必ず / etc / nginx/sites-enabledのシンボリックリンクを更新してください。 コマンドを使用して:

ln -s /etc/nginx/sites-available/domain.com.conf /etc/nginx/sites-enabled/domain.com.conf

ここで取り上げる最初の例は、特定のページ/ディレクトリを新しいページ/ディレクトリにリダイレクトすることです。

一時的なページからページへのリダイレクト

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

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

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

wwwからwww以外への永続的なリダイレクト

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

wwwへの恒久的なリダイレクト

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

Webサイトのドメイン名を変更する必要が生じる場合があります。この場合、古いサイトのURLから新しいサイトのURLへのリダイレクトは、ドメインが新しいURLに移動されたことをユーザーに知らせるのに非常に役立ちます。

次の例では、古いURLを新しいURLにリダイレクトします。

新しいURLへの永続的なリダイレクト

server {
# Permanent redirect to new URL
server_name olddomain.com;
rewrite ^/(.*)$ http://newdomain.com/$1 permanent;
}

前に説明したrewriteディレクティブを使用してリダイレクトを追加しました。 ^ /(。*)$ 正規表現は、URLの/の後のすべてを使用します。たとえば、http:// old domain.com/index.htmlはhttp:// newにリダイレクトされます domain.com/index.html。永続的なリダイレクトを実現するために、サンプルコードに示されているように、書き換えディレクティブの後に永続的なものを追加します。

HTTPSに関しては、完全に安全であるため、すべての人にhttp://ではなくhttps://を使用させるのに理想的です。

HTTPSにリダイレクト

server {
# Redirect to HTTPS
listen      80;
server_name domain.com www.domain.com;
return      301 https://example.com$request_uri;
}

これらの書き換えルールを設定した後、再起動を実行する前に構成をテストすることをお勧めします。 Nginx構文は-tで確認できます ファイルにタイプミスがないことを確認するためのフラグ。

Nginx構文チェック

nginx -t

何も返されない場合、構文は正しく、リダイレクトを有効にするにはNginxをリロードする必要があります。

Nginxの再起動

service nginx reload

CentOS 7の場合 CentOS 6とは異なります 、systemdを使用:

systemctl restart nginx

マネージドWordPress/WooCommerceでリダイレクト

マネージドWordPress/WooCommerce製品を使用している場合、リダイレクトは /home/s#/nginx/redirects.confを介して発生する可能性があります ファイル。各サイトには独自のs#があります これは、サイトごとのFTP/SSHユーザーです。 「リダイレクト」と呼ばれるプラグインをダウンロードして、ページ間のリダイレクトを簡単に行うことができます。それ以外の場合は、redirects.confファイルを使用して、上記の例を使用してより具体的なリダイレクトを追加することもできます。

redirects.confファイル内にルールを設定した後の管理対象プラットフォームの性質上、サポートに連絡してNginxのリロードを依頼してください。上記の手順を実行することに不安がある場合は、チャット、チケット、または電話でサポートチームに連絡してください。 Managed WordPress / WooCommerceを使用すると、24時間年中無休のサポートを利用できます。


Linux
  1. Ubuntu18.04でNginxを使用してWordPressをインストールする方法

  2. NGINXでETagを無効にする方法

  3. (ドット)htaccessファイルを使用してサイトをリダイレクトするにはどうすればよいですか?

  1. .htaccessを使用してhttpをhttpsにリダイレクトする方法は?

  2. PHP-FPM を使用して PHP を実行するように Nginx を構成する方法

  3. nginx がポート 80 を使用しないようにする方法

  1. NginxでHTTPをHTTPSにリダイレクトする方法

  2. Nginxを使用してリダイレクトする方法

  3. NGINXでHTTP2を有効にする方法