在Nginx中,是否可以redirect所有的www。 和非sslstream量在一个单一的服务器块的对立面? 如果是这样,怎么样? 如果不是,处理这些规则的最好方法是什么?
下面是我想要实现的:
http://www.example.com > https://example.com https://www.example.com > https://example.com http://example.com > https://example.com
提前致谢!
http到https部分是这样实现的:
if ($scheme = http) { return 301 https://$server_name$request_uri; }
www到非www的部分已经被回答了很多遍:
https://stackoverflow.com/questions/7947030/nginx-no-www-to-www-and-www-to-no-www
奖励:因为看起来你想要“TLS无处不在”,我强烈build议你考虑一下包括这个Strict-Transport-Security头部:
add_header Strict-Transport-Security 'max-age=31536000; includeSubDomains; preload';
这将有助于浏览器,search引擎等记住,你希望访问者总是去https等价页面,保存你的服务器的redirect,因此资源,让他们到你想要的地方。
正如所暗示的那样,当你提出一个问题时,试着certificate你已经尝试过让自己能够正常工作。