diff --git a/redfish-core/lib/log_services.hpp b/redfish-core/lib/log_services.hpp
index 8464d06..acf2794 100644
--- a/redfish-core/lib/log_services.hpp
+++ b/redfish-core/lib/log_services.hpp
@@ -511,18 +511,16 @@
                 {
                     thisEntry["DiagnosticDataType"] = "Manager";
                     thisEntry["AdditionalDataURI"] =
-                        "/redfish/v1/Managers/bmc/LogServices/Dump/"
-                        "attachment/" +
-                        entryID;
+                        "/redfish/v1/Managers/bmc/LogServices/Dump/Entries/" +
+                        entryID + "/attachment";
                 }
                 else if (dumpType == "System")
                 {
                     thisEntry["DiagnosticDataType"] = "OEM";
                     thisEntry["OEMDiagnosticDataType"] = "System";
                     thisEntry["AdditionalDataURI"] =
-                        "/redfish/v1/Systems/system/LogServices/Dump/"
-                        "attachment/" +
-                        entryID;
+                        "/redfish/v1/Systems/system/LogServices/Dump/Entries/" +
+                        entryID + "/attachment";
                 }
             }
             asyncResp->res.jsonValue["Members@odata.count"] =
@@ -636,9 +634,8 @@
                 {
                     asyncResp->res.jsonValue["DiagnosticDataType"] = "Manager";
                     asyncResp->res.jsonValue["AdditionalDataURI"] =
-                        "/redfish/v1/Managers/bmc/LogServices/Dump/"
-                        "attachment/" +
-                        entryID;
+                        "/redfish/v1/Managers/bmc/LogServices/Dump/Entries/" +
+                        entryID + "/attachment";
                 }
                 else if (dumpType == "System")
                 {
@@ -646,9 +643,8 @@
                     asyncResp->res.jsonValue["OEMDiagnosticDataType"] =
                         "System";
                     asyncResp->res.jsonValue["AdditionalDataURI"] =
-                        "/redfish/v1/Systems/system/LogServices/Dump/"
-                        "attachment/" +
-                        entryID;
+                        "/redfish/v1/Systems/system/LogServices/Dump/Entries/" +
+                        entryID + "/attachment";
                 }
             }
             if (foundDumpEntry == false)
@@ -1508,8 +1504,8 @@
                     {
                         thisEntry["AdditionalDataURI"] =
                             "/redfish/v1/Systems/system/LogServices/EventLog/"
-                            "attachment/" +
-                            std::to_string(*id);
+                            "Entries/" +
+                            std::to_string(*id) + "/attachment";
                     }
                 }
                 std::sort(entriesArray.begin(), entriesArray.end(),
@@ -1659,8 +1655,8 @@
                 {
                     asyncResp->res.jsonValue["AdditionalDataURI"] =
                         "/redfish/v1/Systems/system/LogServices/EventLog/"
-                        "attachment/" +
-                        std::to_string(*id);
+                        "Entries/" +
+                        std::to_string(*id) + "/attachment";
                 }
             },
             "xyz.openbmc_project.Logging",
@@ -1761,10 +1757,10 @@
 {
   public:
     DBusEventLogEntryDownload(App& app) :
-        Node(
-            app,
-            "/redfish/v1/Systems/system/LogServices/EventLog/attachment/<str>/",
-            std::string())
+        Node(app,
+             "/redfish/v1/Systems/system/LogServices/EventLog/Entries/<str>/"
+             "attachment",
+             std::string())
     {
         entityPrivileges = {
             {boost::beast::http::verb::get, {{"Login"}}},
