我的机器上运行的NginX服务器服务于一堆网站。我想处理以下案件:
www
和有证书时,重定向到 https://website.com/ non-www
和有证书时,打开 https://website.com/ www
和没有证书时,重定向到 http://website.com/ non-www
和没有证书时,打开 http://website.com/ 如果有人点击httpS://no-certificate.website.com
怎么办?如何处理这种情况?
我的重定向规则如下:
server {
listen 80{% if not subdomain %} default_server deferred{% endif %};
listen 443 ssl;
server_name www.{{ webserver_name }};
{% if ssl | default(false) %}
return 301 https://{{ webserver_name }}$request_uri;
{% else %}
return 301 http://{{ webserver_name }}$request_uri;
{% endif %}
}
然后:
{% if ssl | default(false) %}
listen 443 ssl;
# ssl_certificate stuff
{% else %}
listen 80;
{% endif %}
server_name {{ webserver_name }};
我错过了什么?