diff --git a/roles/mailman/files/migrated-lists.map b/roles/mailman/files/migrated-lists.map new file mode 100644 index 0000000000000000000000000000000000000000..e69de29bb2d1d6434b8b29ae775ad8c2e48c5391 diff --git a/roles/mailman/tasks/main.yml b/roles/mailman/tasks/main.yml index 800a41a0461cf7d96b0c748cc40857524d583139..0b6497435bcda41c4ae18099471c587144bd736d 100644 --- a/roles/mailman/tasks/main.yml +++ b/roles/mailman/tasks/main.yml @@ -49,6 +49,10 @@ - name: make nginx log dir file: path=/var/log/nginx/{{ lists_domain }} state=directory owner=root group=root mode=0755 +- name: install nginx mailman2->mailman3 redirect map + copy: src=migrated-lists.map dest=/etc/nginx/maps/ owner=root group=root mode=0644 + notify: reload nginx + - name: set up nginx template: src=nginx.d.conf.j2 dest="/etc/nginx/nginx.d/mailman.conf" owner=root group=root mode=644 notify: reload nginx diff --git a/roles/mailman/templates/nginx.d.conf.j2 b/roles/mailman/templates/nginx.d.conf.j2 index d292d493facabb6aac6abed9446292ae13275070..e8cd51c88cb1c4af848b0d7b776cf984521e2d62 100644 --- a/roles/mailman/templates/nginx.d.conf.j2 +++ b/roles/mailman/templates/nginx.d.conf.j2 @@ -15,6 +15,10 @@ server { } } +map $uri $migrated_uri { + include maps/migrated-lists.map; +} + server { listen 443 ssl http2; listen [::]:443 ssl http2; @@ -28,6 +32,10 @@ server { ssl_certificate_key /etc/letsencrypt/live/{{ lists_domain }}/privkey.pem; ssl_trusted_certificate /etc/letsencrypt/live/{{ lists_domain }}/chain.pem; + if ($migrated_uri) { + return 302 $migrated_uri; + } + # redirect old urls location /mailman/ { rewrite ^/mailman/(.*) /$1 permanent;