diff --git a/ui/src/app/app.tsx b/ui/src/app/app.tsx index 1e8bd3b383c34..fb094b71b3900 100644 --- a/ui/src/app/app.tsx +++ b/ui/src/app/app.tsx @@ -235,7 +235,7 @@ export class App extends React.Component< } public getChildContext() { - return {history, apis: {popup: this.popupManager, notifications: this.notificationsManager, navigation: this.navigationManager}}; + return {history, apis: {popup: this.popupManager, notifications: this.notificationsManager, navigation: this.navigationManager, baseHref: base}}; } private async subscribeUnauthorized() { diff --git a/ui/src/app/login/components/login.tsx b/ui/src/app/login/components/login.tsx index b00ef04bcacc4..83d24201f0be8 100644 --- a/ui/src/app/login/components/login.tsx +++ b/ui/src/app/login/components/login.tsx @@ -136,7 +136,12 @@ export class Login extends React.Component, State> { this.setState({loginInProgress: false}); if (returnURL) { const url = new URL(returnURL); - this.appContext.apis.navigation.goto(url.pathname + url.search); + let redirectURL = url.pathname + url.search; + // return url already contains baseHref, so we need to remove it + if (this.appContext.apis.baseHref != '/' && redirectURL.startsWith(this.appContext.apis.baseHref)) { + redirectURL = redirectURL.substring(this.appContext.apis.baseHref.length); + } + this.appContext.apis.navigation.goto(redirectURL); } else { this.appContext.apis.navigation.goto('/applications'); }