サイトをHTTPからHTTPSに移行しようとしていますが、nginx(バージョン:1.10.3)構成が機能していないようです。
次の動作が望ましいです。
http://www.example.com/path/to/content
はhttps://example.com/path/to/content
にリダイレクトする必要がありますhttp://example.com/path/to/content
はhttps://example.com/path/to/content
にリダイレクトする必要がありますhttps://www.example.com/path/to/content
はhttps://example.com/path/to/content
にリダイレクトする必要があります私の現在の設定では、ブラウザはHTTPSを使用してサイトに接続しません。
server {
listen 80;
listen [::]:80;
server_name www.example.com example.com;
# redirects both www and non-www to https
rewrite ^(.*) https://www.example.com$1 permanent;
}
server {
listen 443 ssl http2;
listen [::]:443 ssl http2;
server_name example.com;
# redirects non-www to www
rewrite ^(.*) https://www.example.com$1 permanent;
}
server {
listen 443 ssl http2;
listen [::]:443 ssl http2;
include snippets/ssl-example.com.conf;
include snippets/ssl-params.conf;
charset utf-8;
# rest of my config
}
この構成はあなたが求めるものを作ります:
server {
listen 80;
listen [::]:80;
server_name www.example.com example.com;
# redirects both www and non-www to https
return 301 https://example.com$request_uri;
}
server {
listen 443 ssl http2;
listen [::]:443 ssl http2;
server_name www.example.com;
include snippets/ssl-example.com.conf;
include snippets/ssl-params.conf;
# redirects www to non-www
return 301 https://example.com$request_uri;
}
server {
listen 443 ssl http2;
listen [::]:443 ssl http2;
server_name example.com;
include snippets/ssl-example.com.conf;
include snippets/ssl-params.conf;
charset utf-8;
# rest of my config
}
rewrite
をreturn
に変更しました。これは、もう少し効率的だからです。 return
では、$request_uri
を使用して、リクエストパスと引数をリダイレクトURLに取り込む必要があります。
次に、server_name example.com;
をlisten 443;
ブロックに変更してサイトの実際のコンテンツを提供し、server_name www.example.com;
をlisten 443;
に変更してリダイレクトしました。
以下の方法を使用して試して、残りのSSL情報を更新してください。
server {
listen 80;
listen [::]:80;
server_name www.example.com example.com;
return 301 https://www.example.com$request_uri;
}
また、sslの場合は、sslキーパスを指定します。
server {
listen 443 ssl;
ssl on;
ssl_prefer_server_ciphers on;
ssl_protocols TLSv1 TLSv1.1 TLSv1.2;
ssl_certificate /path of certificate;
ssl_certificate_key /path of server.key;
}