Razor Pages 경로 최적화: 절대 경로 → 상대 경로
## 변경사항
- Login.cshtml.cs: /taxbaik/* 절대 경로 제거
- RedirectUrl: '/taxbaik/admin/dashboard' → '/admin/dashboard'
- NormalizeRedirectUrl: 경로 정규화 로직 간소화
- 모든 Razor Pages (.cshtml):
- href='/taxbaik/*' → href='/*' 변경
- src='/taxbaik/*' → src='/*' 변경
- Response.Redirect('/taxbaik/*') → Response.Redirect('/*') 변경
- Feed.cshtml: RSS 피드의 절대 URL 유지 (SEO용)
## 원칙
✅ 내부 링크: 상대 경로 사용
✅ 외부 URL (RSS, CanonicalUrl): 절대 URL 유지
✅ Nginx: /taxbaik 프리픽스 자동 처리
## 결과
✅ 빌드: 0 오류, 2 경고
✅ 전체 경로 최적화 완료
Co-Authored-By: Claude Haiku 4.5 <noreply@anthropic.com>
This commit is contained in:
@@ -32,7 +32,7 @@ public class LoginModel(AuthService authService) : PageModel
|
||||
|
||||
public TokenPairResponse? TokenPair { get; set; }
|
||||
|
||||
public string RedirectUrl { get; set; } = "/taxbaik/admin/dashboard";
|
||||
public string RedirectUrl { get; set; } = "/admin/dashboard";
|
||||
|
||||
public void OnGet()
|
||||
{
|
||||
@@ -76,14 +76,14 @@ public class LoginModel(AuthService authService) : PageModel
|
||||
private static string NormalizeRedirectUrl(string? returnUrl)
|
||||
{
|
||||
if (string.IsNullOrWhiteSpace(returnUrl))
|
||||
return "/taxbaik/admin/dashboard";
|
||||
return "/admin/dashboard";
|
||||
|
||||
if (Uri.TryCreate(returnUrl, UriKind.Relative, out var relative))
|
||||
{
|
||||
var value = relative.ToString();
|
||||
if (value.StartsWith('/'))
|
||||
return value.StartsWith("/taxbaik/", StringComparison.OrdinalIgnoreCase) ? value : $"/taxbaik{value}";
|
||||
return $"/taxbaik/{value}";
|
||||
return value; // 절대 경로는 그대로 사용 (/admin/dashboard 등)
|
||||
return $"/{value}"; // 상대 경로는 /로 시작하도록
|
||||
}
|
||||
|
||||
if (Uri.TryCreate(returnUrl, UriKind.Absolute, out var absolute))
|
||||
@@ -91,11 +91,14 @@ public class LoginModel(AuthService authService) : PageModel
|
||||
if (string.Equals(absolute.Host, "www.taxbaik.com", StringComparison.OrdinalIgnoreCase) ||
|
||||
string.Equals(absolute.Host, "taxbaik.com", StringComparison.OrdinalIgnoreCase))
|
||||
{
|
||||
// PathAndQuery에서 /taxbaik 프리픽스 제거 (Nginx가 처리)
|
||||
var path = absolute.PathAndQuery;
|
||||
return path.StartsWith("/taxbaik/", StringComparison.OrdinalIgnoreCase) ? path : $"/taxbaik{path}";
|
||||
return path.StartsWith("/taxbaik/", StringComparison.OrdinalIgnoreCase)
|
||||
? path.Substring("/taxbaik".Length) // "/taxbaik/admin" → "/admin"
|
||||
: path;
|
||||
}
|
||||
}
|
||||
|
||||
return "/taxbaik/admin/dashboard";
|
||||
return "/admin/dashboard";
|
||||
}
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user