diff --git a/include/forward_unauthorized.hpp b/include/forward_unauthorized.hpp
index 4ec770f..9ba2b1c 100644
--- a/include/forward_unauthorized.hpp
+++ b/include/forward_unauthorized.hpp
@@ -3,6 +3,9 @@
 #include "http_response.hpp"
 #include "http_utility.hpp"
 
+#include <boost/url/format.hpp>
+#include <boost/url/url.hpp>
+
 namespace forward_unauthorized
 {
 
@@ -21,9 +24,11 @@
         // If we have a webui installed, redirect to that login page
         if (hasWebuiRoute)
         {
+            boost::urls::url forward = boost::urls::format("/?next={}#/login",
+                                                           url);
             res.result(boost::beast::http::status::temporary_redirect);
             res.addHeader(boost::beast::http::field::location,
-                          "/#/login?next=" + http_helpers::urlEncode(url));
+                          forward.buffer());
             return;
         }
         // If we don't have a webui installed, just return an unauthorized
diff --git a/include/http_utility.hpp b/include/http_utility.hpp
index d18ac4b..eb54d0b 100644
--- a/include/http_utility.hpp
+++ b/include/http_utility.hpp
@@ -111,28 +111,4 @@
     return type == allowed;
 }
 
-inline std::string urlEncode(std::string_view value)
-{
-    std::ostringstream escaped;
-    escaped.fill('0');
-    escaped << std::hex;
-
-    for (const char c : value)
-    {
-        // Keep alphanumeric and other accepted characters intact
-        if ((isalnum(c) != 0) || c == '-' || c == '_' || c == '.' || c == '~')
-        {
-            escaped << c;
-            continue;
-        }
-
-        // Any other characters are percent-encoded
-        escaped << std::uppercase;
-        escaped << '%' << std::setw(2)
-                << static_cast<int>(static_cast<unsigned char>(c));
-        escaped << std::nouppercase;
-    }
-
-    return escaped.str();
-}
 } // namespace http_helpers
