私はUbuntuとNginxを使用しています。
私のウェブサイトはSSL保護の下でホストされています。
「https」に「s」がないドメイン名をブラウザに入力すると、「https」にリダイレクトされます。ただし、ドメインのIPアドレスを入力すると、「https」にリダイレクトされません。アドレスバーには「http://xxx.xxx.xxx.xxx」と表示されます。
そう思います:
server {
listen 80 default_server;
listen [::]:80 default_server;
server_name _;
return 301 https://$host$request_uri;
}
この問題は解決できますが、購入することはできません。
あなたの初心者...
答え1
IPアドレスをserver_nameとして使用して別のサーバー部分を作成してみてください。サーバー名が明示的にドメイン名(_の代わりに)を表すようにすることをお勧めします。その後、新しいサーバー部分(IPアドレス)からドメイン名(ポート80と同じ)にリダイレクトされます。
たとえば、
server {
server_name 12.34.56.178;
listen 80;
listen 443 ssl;
listen [::]:80;
listen [::]:443 ssl;
return 301 https://example.com;
}
...そしてnginxを再起動することを忘れないでくださいsystemctl restart nginx
これを試してテストするためにブラウザを再起動してみましたか?ブラウザキャッシュがあると、コンテンツをデバッグするのが難しい場合があります。したがって、私はテストに使用することを好みwget -O- http://12.34.56.78
ますcurl -o- http://12.34.56.78
。