Nginx:将非 www 重定向到 www https

编程入门 行业动态 更新时间:2024-10-25 02:26:04
本文介绍了Nginx:将非 www 重定向到 www https的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧! 问题描述

我有下面的 nginx 配置,我正在尝试将所有内容重定向到 www,不管是什么示例 example、www.example 或 example.>

我查看了许多关于 SO 的主题并尝试了几件事,但仍然被难住了,我永远无法获得 example 重定向到 www 模式!?

服务器{听80;听 443 ssl;server_name example;返回 301 www.example$request_uri;}服务器 {听 443 ssl;ssl_certificate/etc/letsencrypt/live/example/fullchain.pem;ssl_certificate_key/etc/letsencrypt/live/example/privkey.pem;ssl_protocols TLSv1 TLSv1.1 TLSv1.2;ssl_prefer_server_ciphers on;ssl_ciphers 'EECDH+AESGCM:EDH+AESGCM:AES256+EECDH:AES256+EDH';ssl_dhparam/etc/nginx/ssl/dhparams.pem;ssl_session_timeout 30m;ssl_session_cache 共享:SSL:10m;ssl_buffer_size 8k;add_header Strict-Transport-Security max-age=31536000;根目录/usr/share/nginx/html;# 加载默认服务器块的配置文件.包括/etc/nginx/default.d/*.conf;地点/{}error_page 404/404.html;位置 =/40x.html {}error_page 500 502 503 504/50x.html;位置 =/50x.html {}}

解决方案

让一个 server 块成为默认服务器,并给另一个 server 块一个真正的 server_name.

服务器{听 80 default_server;听 443 ssl default_server;ssl_certificate ...;ssl_certificate_key ...;返回 301 www.example$request_uri;}服务器 {听 443 ssl;server_name www.example;ssl_certificate ...;ssl_certificate_key ...;...}

https 的默认服务器需要有效的证书.假设您有一个通配符证书 - 大多数 ssl_ 语句可以移动到外部块中并由两个服务器块继承.例如:

ssl_certificate ...;ssl_certificate_key ...;ssl_...;服务器 {听 80 default_server;听 443 ssl default_server;返回 301 www.example$request_uri;}服务器 {听 443 ssl;server_name www.example;...}

有关更多信息,请参阅本文档.

I have my below nginx config, I'm trying to redirect everything to www regardless of what comes in for example example, www.example or example.

I've looked at numerous topics on SO and tried a couple of things but still stumped, I can't ever get example to redirect to the www pattern!?

server { listen 80; listen 443 ssl; server_name example; return 301 www.example$request_uri; } server { listen 443 ssl; ssl_certificate /etc/letsencrypt/live/example/fullchain.pem; ssl_certificate_key /etc/letsencrypt/live/example/privkey.pem; ssl_protocols TLSv1 TLSv1.1 TLSv1.2; ssl_prefer_server_ciphers on; ssl_ciphers 'EECDH+AESGCM:EDH+AESGCM:AES256+EECDH:AES256+EDH'; ssl_dhparam /etc/nginx/ssl/dhparams.pem; ssl_session_timeout 30m; ssl_session_cache shared:SSL:10m; ssl_buffer_size 8k; add_header Strict-Transport-Security max-age=31536000; root /usr/share/nginx/html; # Load configuration files for the default server block. include /etc/nginx/default.d/*.conf; location / { } error_page 404 /404.html; location = /40x.html { } error_page 500 502 503 504 /50x.html; location = /50x.html { } }

解决方案

Make one server block a default server and give the other server block the one true server_name.

server { listen 80 default_server; listen 443 ssl default_server; ssl_certificate ...; ssl_certificate_key ...; return 301 www.example$request_uri; } server { listen 443 ssl; server_name www.example; ssl_certificate ...; ssl_certificate_key ...; ... }

The default server for https requires a valid certificate. Assuming you have a wildcard certificate - most of the ssl_ statements could be moved into the outer block and be inherited by both server blocks. For example:

ssl_certificate ...; ssl_certificate_key ...; ssl_...; server { listen 80 default_server; listen 443 ssl default_server; return 301 www.example$request_uri; } server { listen 443 ssl; server_name www.example; ... }

See this document for more.

更多推荐

Nginx:将非 www 重定向到 www https

本文发布于:2023-07-16 03:50:30,感谢您对本站的认可!
本文链接:https://www.elefans.com/category/jswz/34/1117557.html
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系,我们将在24小时内删除。
本文标签:重定向   Nginx   www   https

发布评论

评论列表 (有 0 条评论)
草根站长

>www.elefans.com

编程频道|电子爱好者 - 技术资讯及电子产品介绍!