diff --git a/layers/components/widgets/ButtonList.vue b/layers/components/widgets/ButtonList.vue
index a95d052..fc11979 100644
--- a/layers/components/widgets/ButtonList.vue
+++ b/layers/components/widgets/ButtonList.vue
@@ -123,7 +123,7 @@ const handleButtonClick = (button: PageDataResourceGroup) => {
diff --git a/layers/layouts/default.vue b/layers/layouts/default.vue
index ae9b53e..3003290 100644
--- a/layers/layouts/default.vue
+++ b/layers/layouts/default.vue
@@ -1,10 +1,4 @@
-
+
diff --git a/layers/middleware/pageData.global.ts b/layers/middleware/pageData.global.ts
index 06a685d..4a7caee 100644
--- a/layers/middleware/pageData.global.ts
+++ b/layers/middleware/pageData.global.ts
@@ -113,19 +113,18 @@ export default defineNuxtRouteMiddleware(async (to, _from) => {
}
// 91002 (Invalid LangCode): 미지원 언어로 접근
if (pageDataResponse?.code === 91002) {
- // 페이지별 지원 언어에 현재 langCode가 포함되지 않는 경우
- // 서비스 기본 언어(게임 기본 언어 또는 ko)로 한 번만 리다이렉트
- const fallbackLang =
- defaultLangCode.value ||
- // defaultLangCode가 없으면 ko 우선, 없으면 첫 번째 언어, 그래도 없으면 ko
- (langCodes.value?.includes('ko') ? 'ko' : langCodes.value?.[0] || 'ko')
-
- // 이미 fallback 언어로 접근 중이라면 더 이상 리다이렉트하지 않음 (무한 루프 방지)
- if (langCode === fallbackLang) {
- return
+ // 이미 /home 경로에 있으면 무한 리다이렉트 방지
+ if (gamePath === '/home') {
+ return createError({
+ statusCode: 404,
+ statusMessage: pageDataResponse?.message,
+ fatal: false, // 즉시 에러 페이지로
+ data: {
+ reason: pageDataResponse?.message,
+ },
+ })
}
-
- return navigateTo(`/${fallbackLang}/home`)
+ return navigateTo(`/${langCode}/home`)
}
// [TODO]
diff --git a/layers/utils/urlUtil.ts b/layers/utils/urlUtil.ts
index 76bd4a5..b9c379d 100644
--- a/layers/utils/urlUtil.ts
+++ b/layers/utils/urlUtil.ts
@@ -61,7 +61,7 @@ export const getPathLocale = (url: string): string => {
if (!url) return ''
const cleanUrl = url.endsWith('/') ? url.slice(0, -1) : url
- return cleanUrl.split('/')[1]
+ return cleanUrl.split('/')[1] || ''
}
/**