React App with external route table and cookie-based routing
In general, your code does a good job at naming variables/functions, and at splitting logic up in ways that make sense.
However, there are a few places where you are inconsistent with your code style - maybe using a linter would help out:

In some files you indent with 2 spaces. Other files are indented with 4.
There's a number of import statements that have an extra space between the words. e.g. import  ParseRoutes from &quot;./Utils/ParseRoutes&quot;

A note on casing: Generally, we use TitleCase for classes and components only. camelCase is used for almost everything else. A file (or folder with an index.js) with a default export of a class or component may use TitleCase too. However, folders like &quot;Util&quot; or &quot;Components&quot; should probably all be in lowercase. Your &quot;getCookieValue()&quot; function is properly cased, but in the same file, your &quot;RedirectIfRequested()&quot; function is not - RedirectIfRequested is not a class or component. (there's a couple other examples like that).
The local variables in getCookieValue() could probably be named better then &quot;a&quot; and &quot;b&quot;. Maybe rename &quot;a&quot; to &quot;cookieKey&quot; and &quot;b&quot; to &quot;match&quot;.
.pop() is not a common way to get a group from a regex. If you want to get the second group, just say that with code: match[2]. Note that since you don't actually care about the value of the first group in your regex, you can use a non-capturing group instead (the syntax is (?:...)). For example, if your regex is a(b|B)c(d|D)e, then b/B is group 1 and d/D is group 2, but if its a(?:b|B)c(d|D)e, then you can't get b/B, and d/D is group 1. You don't have to use non-capture groups, but I just want to make sure you know that that's an option.

Finally, and most importantly, all of this routing logic you made is actually not needed. The proper way to configure a server to handle single-page-application (SPA) routing is as follows:
Lets assume your SPA exits at example.com/my-app, and your app has routes such as example.com/my-app/ (the home page) and example.com/my-app/widget/2. You need to configure your server to return the same react bundle no matter which route they hit, as long as its within example.com/my-app. So, going to example.com/my-app/does-not-exist will give you the same javascript bundle as going to example.com/my-app/widget/2. (Note that this is not the same as a redirection). Finally, javascript can check which URL you used (was it /my-app/does-not-exist/ or /my-app/widget/2) and route based on that information - something that react-router will do for you. If the route doesn't exist, just show a 404 page from your React app.