67 lines
1.5 KiB
Django/Jinja
67 lines
1.5 KiB
Django/Jinja
# {{ ansible_managed }}
|
|
|
|
{% for site in nginx.redirect_sites %}
|
|
# Redirect http://{{ site.from }} to http://{{ site.to }}
|
|
server {
|
|
listen 80;
|
|
listen [::]:80;
|
|
|
|
server_name {{ site.from }};
|
|
|
|
location / {
|
|
return 302 http://{{ site.to }}{% if site.norequesturi is not defined %}$request_uri{% endif %};
|
|
}
|
|
}
|
|
|
|
# Redirect https://{{ site.from }} to https://{{ site.to }}
|
|
server {
|
|
listen 443 ssl http2;
|
|
listen [::]:443 ssl http2;
|
|
|
|
server_name {{ site.from }};
|
|
|
|
# SSL common conf
|
|
include "/etc/nginx/snippets/options-ssl.conf";
|
|
|
|
location / {
|
|
return 302 https://{{ site.to }}{% if site.norequesturi is not defined %}$request_uri{% endif %};
|
|
}
|
|
}
|
|
|
|
{% endfor %}
|
|
|
|
{# Also redirect for DNAMEs #}
|
|
{% for dname in nginx.redirect_dnames %}
|
|
{% for site in nginx.redirect_sites %}
|
|
{% set from = site.from | regex_replace('crans.org', dname) %}
|
|
{% if from != site.from %}
|
|
# Redirect http://{{ from }} to http://{{ site.to }}
|
|
server {
|
|
listen 80;
|
|
listen [::]:80;
|
|
|
|
server_name {{ from }};
|
|
|
|
location / {
|
|
return 302 http://{{ site.to }}{% if site.norequesturi is not defined %}$request_uri{% endif %};
|
|
}
|
|
}
|
|
|
|
# Redirect https://{{ from }} to https://{{ site.to }}
|
|
server {
|
|
listen 443 ssl http2;
|
|
listen [::]:443 ssl http2;
|
|
|
|
server_name {{ from }};
|
|
|
|
# SSL common conf
|
|
include "/etc/nginx/snippets/options-ssl.conf";
|
|
|
|
location / {
|
|
return 302 https://{{ site.to }}{% if site.norequesturi is not defined %}$request_uri{% endif %};
|
|
}
|
|
}
|
|
|
|
{% endif %}
|
|
{% endfor %}
|
|
{% endfor %}
|