Nginx:将非www重定向到www https

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

我有下面的nginx配置,我试图将所有内容都重定向到 www 示例 example , www.example 或 example .

我已经看过很多关于SO的主题,并尝试了几件事,但是仍然很困惑,我永远无法获得 example 重定向到 www 模式!?

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 { } }

解决方案

使一个server块成为默认服务器,并为另一个server块赋予一个真实的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 ...; ... }

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

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; ... }

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

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

发布评论

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

>www.elefans.com

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