diff --git a/mongoose.c b/mongoose.c
index 66a6f98bcf54728f51f30c1d161c64a540787da5..74325e9899aec817c6112f39277cc908bff91e64 100644
--- a/mongoose.c
+++ b/mongoose.c
@@ -4202,6 +4202,8 @@ static void handle_request(struct mg_connection *conn) {
                                 get_remote_ip(conn), ri->uri);
 
   DEBUG_TRACE(("%s", ri->uri));
+  // Perform redirect and auth checks before calling begin_request() handler.
+  // Otherwise, begin_request() would need to perform auth checks and redirects.
   if (!conn->client.is_ssl && conn->client.ssl_redir &&
       (ssl_index = get_first_ssl_listener_index(conn->ctx)) > -1) {
     redirect_to_https_port(conn, ssl_index);