diff --git a/config/nginx/default.conf b/config/nginx/default.conf
index 4b6ba566b1ba7aebb51caa9030f343b0b3bd5a6c..30bcfabcaf7fca93a9aa5c7d1990bc94de827d23 100644
--- a/config/nginx/default.conf
+++ b/config/nginx/default.conf
@@ -274,29 +274,28 @@ server {
       return 301 https://$host/org/corporate-sponsors/details/;
     }
 
-
-    location = /org/langsymp/A%20note%20for%20the%20Eclipse%20Language%20Conference.pdf {
+    location ~ ^/org/langsymp/A(?:%20|\+|\s)note(?:%20|\+|\s)for(?:%20|\+|\s)the(?:%20|\+|\s)Eclipse(?:%20|\+|\s)Language(?:%20|\+|\s)Conference.pdf$ {
         return 301 https://$host/events/2005/langsymp/a-note-for-the-eclipse-language-conference.pdf;
     }
-    location = /org/langsymp/content/org/langsymp/Adding%20support%20for%20a%20new%20language%20to%20an%20Eclipse%20based%20.pdf {
+    location ~ ^/org/langsymp/content/org/langsymp/Adding(?:%20|\+|\s)support(?:%20|\+|\s)for(?:%20|\+|\s)a(?:%20|\+|\s)new(?:%20|\+|\s)language(?:%20|\+|\s)to(?:%20|\+|\s)an(?:%20|\+|\s)Eclipse(?:%20|\+|\s)based(?:%20|\+|\s).pdf$ {
         return 301 https://$host/events/2005/langsymp/adding-support-for-a-new-language-to-an-eclipse-based-ide.pdf;
     }
-    location = /org/langsymp/Ascher%20-%20Eclipse%20Position.pdf {
+    location ~ ^/org/langsymp/Ascher(?:%20|\+|\s)-(?:%20|\+|\s)Eclipse(?:%20|\+|\s)Position.pdf$ {
         return 301 https://$host/events/2005/langsymp/ascher-eclipse-position.pdf;
     }
-    location = /org/langsymp/CDT%20Managed%20Build%20System.pdf {
+    location ~ ^/org/langsymp/CDT(?:%20|\+|\s)Managed(?:%20|\+|\s)Build(?:%20|\+|\s)System.pdf$ {
         return 301 https://$host/events/2005/langsymp/cdt-managed-build-system.pdf;
     }
-    location = /org/langsymp/Compiled%20Language%20Support%20In%20Eclipse.pdf {
+    location ~ ^/org/langsymp/Compiled(?:%20|\+|\s)Language(?:%20|\+|\s)Support(?:%20|\+|\s)In(?:%20|\+|\s)Eclipse.pdf$ {
         return 301 https://$host/events/2005/langsymp/compiled-language-support-in-eclipse.pdf;
     }
     location = /org/langsymp/CraigRasmussen.pdf {
         return 301 https://$host/events/2005/langsymp/craig-rasmussen.pdf;
     }
-    location = /org/langsymp/Doug%20Lang%20Symp.pdf {
+    location ~ ^/org/langsymp/Doug(?:%20|\+|\s)Lang(?:%20|\+|\s)Symp.pdf$ {
         return 301 https://$host/events/2005/langsymp/doug-lang-symp.pdf;
     }
-    location = /org/langsymp/Eclipse%20and%20Dynamic%20Languages.pdf {
+    location ~ ^/org/langsymp/Eclipse(?:%20|\+|\s)and(?:%20|\+|\s)Dynamic(?:%20|\+|\s)Languages.pdf$ {
         return 301 https://$host/events/2005/langsymp/eclipse-and-dynamic-languages.pdf;
     }
     location = /org/langsymp/EclipseEverywhere.pdf {
@@ -305,7 +304,7 @@ server {
     location = /org/langsymp/eclipseLanguagePosition.pdf {
         return 301 https://$host/events/2005/langsymp/eclipse-language-position.pdf;
     }
-    location = /org/langsymp/Extending%20Eclipse%20with%20Languages%20Other%20Than%20Java.pdf {
+    location ~ ^/org/langsymp/Extending(?:%20|\+|\s)Eclipse(?:%20|\+|\s)with(?:%20|\+|\s)Languages(?:%20|\+|\s)Other(?:%20|\+|\s)Than(?:%20|\+|\s)Java.pdf$ {
         return 301 https://$host/events/2005/langsymp/extending-eclipse-with-languages-other-than-java.pdf;
     }
     location = /org/langsymp/Extending_Eclipse_with_Compiled_Languages_other_than_C.pdf {
@@ -323,10 +322,10 @@ server {
     location = /org/langsymp/MImrisek_Languages_Workshop_PositionPaper.pdf {
         return 301 https://$host/events/2005/langsymp/m-imrisek-languages-workshop-position-paper.pdf;
     }
-    location = /org/langsymp/Multi%20Language%20Support%20-%20User%20Perspective.pdf {
+    location ~ ^/org/langsymp/Multi(?:%20|\+|\s)Language(?:%20|\+|\s)Support(?:%20|\+|\s)-(?:%20|\+|\s)User(?:%20|\+|\s)Perspective.pdf$ {
         return 301 https://$host/events/2005/langsymp/multi-language-support-user-perspective.pdf;
     }
-    location = /org/langsymp/Split%20along%20Technology%20not%20Language%202005-10.pdf {
+    location ~ ^/org/langsymp/Split(?:%20|\+|\s)along(?:%20|\+|\s)Technology(?:%20|\+|\s)not(?:%20|\+|\s)Language(?:%20|\+|\s)2005-10.pdf$ {
         return 301 https://$host/events/2005/langsymp/split-along-technology-not-language-2005-10.pdf;
     }
     location = /org/langsymp/StayingPragmatic.pdf {
@@ -335,7 +334,7 @@ server {
     location = /org/langsymp/TestPointInPractice.pdf {
         return 301 https://$host/events/2005/langsymp/test-point-in-practice.pdf;
     }
-    location = /org/langsymp/Volanakis%20-%20Mixed-language%20usage%20scenarios.pdf {
+    location ~ ^/org/langsymp/Volanakis(?:%20|\+|\s)-(?:%20|\+|\s)Mixed-language(?:%20|\+|\s)usage(?:%20|\+|\s)scenarios.pdf$ {
         return 301 https://$host/events/2005/langsymp/volanakis-mixed-language-usage-scenarios.pdf;
     }
     location = /org/langsymp/langsympduimovich.html {