回答:
server_nameは、.mydomain.com構文を使用してサフィックスの一致をサポートします。
server {
server_name .mydomain.com;
rewrite ^ http://www.adifferentdomain.com$request_uri? permanent;
}
またはバージョン0.9.1以降:
server {
server_name .mydomain.com;
return 301 http://www.adifferentdomain.com$request_uri;
}
listen
指定しない場合、ディレクティブのデフォルトはポート80です。実際には、一般的なものよりも少し複雑です。詳細については、nginx構成ドキュメントをご覧ください。
?
終わりで達成しますか?
rewrite
とはreturn 301 $scheme://www.adifferentdomain.com$request_uri;
?
$request_uri
クエリ文字列が既にあるため、再度追加する必要はありません。return 301
構文は新しいものであり、2つの方法の間の挙動に差があってはならないが、私はもともとこの質問に答えたときに、私はより安全な構文と一緒に行ったので、多くのディストリビューションには、必要なバージョンを持っていませんでした。
server {
server_name .mydomain.com;
return 301 http://www.adifferentdomain.com$request_uri;
}
http://wiki.nginx.org/HttpRewriteModule#return
そして
可能であれば、なぜrewriteモジュールを使用するのreturn
ですか?技術的に言えば、ここで読むことができるreturn
ようにrewriteモジュールの一部ですが、このスニペットはimhoを読む方が簡単です。
server {
server_name .domain.com;
return 302 $scheme://forwarded-domain.com;
}
また、301リダイレクトを指定することもできます。
return 302 $scheme://forwarded-domain.com$request_uri;
これはHTTPRewriteModuleを介して機能するはずです。
www.example.comからexample.comに書き換える例:
server {
server_name www.example.com;
rewrite ^ http://example.com$request_uri? permanent;
}
server_name example.com www.example.com;
。
「domain1.com」のリクエストを「domain2.com」にリダイレクトする場合は、次のようなサーバーブロックを作成できます。
server {
listen 80;
server_name domain1.com;
return 301 $scheme://domain2.com$request_uri;
}
listen 443;
一時的なリダイレクト
rewrite ^ http://www.RedirectToThisDomain.com$request_uri? redirect;
永続的なリダイレクト
rewrite ^ http://www.RedirectToThisDomain.com$request_uri? permanent;
特定のサイトのnginx設定ファイルで:
server {
server_name www.example.com;
rewrite ^ http://www.RedictToThisDomain.com$request_uri? redirect;
}
サーバー{}ブロック内にif条件を記述するだけです。
server {
if ($host = mydomain.com) {
return 301 http://www.adifferentdomain.com;
}
}