From b3ed2a4de0e1389ba0b8d3d15388b556254f7b49 Mon Sep 17 00:00:00 2001
From: David Beniamine <david.beniamine@tetras-libre.fr>
Date: Wed, 1 Dec 2021 11:28:53 +0100
Subject: [PATCH] Rewrite url to hide /wws

---
 docker/sympa/Dockerfile   |  4 +++
 docker/sympa/default.conf | 53 +++++++++++++++++++++++++++++++++++++++
 2 files changed, 57 insertions(+)
 create mode 100644 docker/sympa/default.conf

diff --git a/docker/sympa/Dockerfile b/docker/sympa/Dockerfile
index 10d7e6c..9223898 100644
--- a/docker/sympa/Dockerfile
+++ b/docker/sympa/Dockerfile
@@ -27,6 +27,10 @@ RUN echo "local1.* -/var/log/sympa.log" >> /etc/syslog.conf
 
 RUN cp -r /etc/sympa /etc/sympa.sample
 
+COPY default.conf /etc/apache2/sites-available/000-default.conf
+
+RUN a2enmod rewrite substitute
+
 COPY supervisord.conf /etc/supervisor/conf.d
 
 COPY run.sh /opt/sympa_run.sh
diff --git a/docker/sympa/default.conf b/docker/sympa/default.conf
new file mode 100644
index 0000000..7351787
--- /dev/null
+++ b/docker/sympa/default.conf
@@ -0,0 +1,53 @@
+<VirtualHost *:80>
+        # The ServerName directive sets the request scheme, hostname and port that
+        # the server uses to identify itself. This is used when creating
+        # redirection URLs. In the context of virtual hosts, the ServerName
+        # specifies what hostname must appear in the request's Host: header to
+        # match this virtual host. For the default virtual host (this file) this
+        # value is not decisive as it is used as a last resort host regardless.
+        # However, you must set it for any further virtual host explicitly.
+        #ServerName www.example.com
+
+        ServerAdmin webmaster@localhost
+        DocumentRoot /var/www/html
+
+        # Available loglevels: trace8, ..., trace1, debug, info, notice, warn,
+        # error, crit, alert, emerg.
+        # It is also possible to configure the loglevel for particular
+        # modules, e.g.
+        #LogLevel info ssl:warn
+
+        ErrorLog ${APACHE_LOG_DIR}/error.log
+        CustomLog ${APACHE_LOG_DIR}/access.log combined
+
+        # Sympa pretty urls
+        RewriteEngine on
+        # Do not redirect static, css and pictures
+        RewriteCond %{REQUEST_URI} !^/(static|css|pictures)-sympa/.*
+        # Avoid redirect loops
+        RewriteCond %{REQUEST_URI} !^/wws.*
+        # Prepend wws
+        RewriteRule (.*) /wws$1 [PT,QSA]
+
+        # Remove /wws/ in html output
+        <Location "/">
+            AddOutputFilterByType SUBSTITUTE text/html
+            Substitute "s|/wws/|/|"
+        </Location>
+
+        # Hide direct access to /wws
+        RewriteCond %{REQUEST_URI} ^/wws.*
+        RewriteRule /wws(.*) $1 [L,QSA,R=301]
+
+        # For debug purposes, uncomment this line
+        # LogLevel alert rewrite:trace6 substitute:trace6
+
+        # For most configuration files from conf-available/, which are
+        # enabled or disabled at a global level, it is possible to
+        # include a line for only one particular virtual host. For example the
+        # following line enables the CGI configuration for this host only
+        # after it has been globally disabled with "a2disconf".
+        #Include conf-available/serve-cgi-bin.conf
+</VirtualHost>
+
+# vim: syntax=apache ts=4 sw=4 sts=4 sr noet
-- 
GitLab