我希望WWW和非WWWurl都能通过https访问非WWW。
我有我的NGINXconfiguration下面的块:
server { listen 80 default_server; listen [::]:80 default_server; server_name example.com www.example.com; return 301 https://example.com$request_uri; } server { # SSL configuration # listen 443 ssl default_server; listen [::]:443 ssl default_server; ... }
问题是,example.com的www仍然被转换为https的www.example.com,而我想剥离www。
我真的不明白我在这里失去了什么
最简单的方法是回到301,如果你有一个SSL匹配两个域。
没有SNI支持的选项
server { listen 80 default_server; listen [::]:80 default_server; server_name example.com www.example.com; return 301 https://example.com$request_uri; } server { # SSL configuration # listen 443 ssl default_server; listen [::]:443 ssl default_server; if ($http_host = www.example.com) { rewrite (.*) https://example.com$request_uri; } ... }
如果不是,则需要SNI或另一个IP地址作为wwwlogging,然后使用临时ssl(例如来自Letsencrypt)将用户redirect到正确的域。
选项与SNI支持
server { listen 80 default_server; listen [::]:80 default_server; server_name example.com www.example.com; return 301 https://example.com$request_uri; } server { # SSL configuration # listen 443 ssl default_server; listen [::]:443 ssl default_server; server_name www.example.com; return 301 https://example.com$request_uri; ... }