diff --git a/src/client.cpp b/src/client.cpp index b717f8b..97f93d8 100644 --- a/src/client.cpp +++ b/src/client.cpp @@ -194,8 +194,21 @@ bool connection_handler(const char *preprefix, const char *col1, const char *col pid_t childpid = 0; - if ((host == "necronda.net" || socket->getSocketPort() != 443) && path.getRelativeFilePath().find("/.well-known/acme-challenge/") != 0) { - req.redirect(303, "https://www.necronda.net/"); + bool redir = true; + if (path.getRelativeFilePath().find("/.well-known/acme-challenge/") != 0) { + if (host == "necronda.net") { + req.redirect(303, "https://www.necronda.net/"); + } else if (socket->getSocketPort() != 443) { + req.redirect(303, "https://" + host + req.getPath()); + } else if (getWebRoot(host) == "") { + req.redirect(303, "https://www.necronda.net" + req.getPath()); + } else { + redir = false; + } + } + + if (redir) { + } else if (!path.getNewPath().empty() && req.getMethod() != "POST") { req.redirect(303, path.getNewPath()); } else { diff --git a/src/necronda-server.cpp b/src/necronda-server.cpp index d965cb0..8b52b5c 100644 --- a/src/necronda-server.cpp +++ b/src/necronda-server.cpp @@ -191,14 +191,11 @@ string read_line(FILE* file) { #include "../CppNet/src/network/http/HttpConnection.cpp" string getWebRoot(string host) { - if (host == "www.necronda.net") { - host = "www.necronda.net-new"; - } string root = webroot + host; if (fileExists(root)) { return root; } else { - return (string) webroot + "www.necronda.net-new"; + return ""; } }