something.custom.com
HTTPリクエストをhttpsにリダイレクトし、他のリクエストは変更しないままにします。以下のように試してみましたが、うまくいかなかった:Nginx:カスタムドメインのHTTPリクエストをhttpsにリダイレクト
server {
listen 80 default_server;
listen [::]:80 default_server ipv6only=on;
server_name _;
if ($host ~ ^(.*?)\.custom\.com) {
return 301 https://$host$request_uri;
}
root /www/example/public;
}
server {
listen 443 default_server ssl;
listen [::]:443 default_server ipv6only=on ssl;
server_name _;
root /www/example/public;
}
セットアップに何か問題がありますか?
これは、HTTPSバージョンにドメインcustom.comへのすべての要求をリダイレクトします。特定のサブドメインをターゲットにする場合は、サーバー名を指定します。例えば、 'server {listen 80; server_name something.custom.com; return 301 https://something.custom.com;} ' –
しかしカスタムドメインのみをリダイレクトしたい。あなたが言ったようにしたら、 'server {listen 80;}のような他の非カスタムドメインのための別のエントリを持つ必要があります。 server_name _} 'を入力してください。 Nginxは、複数のエントリがポート80を聞いてくると不平を言う。どのように解決するのですか? –
Nginxは複数の 'listen 80;'ディレクティブに 'server_name'の衝突がない別々のサーバブロックにある限り、問題はありません。下記の一時的な解決策を答えてください。 –