From 90f48856ff0a8e4682736338e17c9337ca7c70e1 Mon Sep 17 00:00:00 2001 From: Gyubin-Han Date: Thu, 26 Jun 2025 15:17:20 +0900 Subject: [PATCH] =?UTF-8?q?Fix:=20=EC=9B=90=EB=B3=B8=20URL=EC=97=90=20Unic?= =?UTF-8?q?ode=EA=B0=80=20=ED=8F=AC=ED=95=A8=EB=90=98=EC=97=88=EC=9D=84=20?= =?UTF-8?q?=EB=95=8C=20=EC=98=88=EC=99=B8=20=EB=B0=9C=EC=83=9D=ED=95=98?= =?UTF-8?q?=EB=8A=94=20=EB=AC=B8=EC=A0=9C=20=ED=95=B4=EA=B2=B0?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../be/gyu/urlShortener/controller/MainController.java | 8 +++++++- 1 file changed, 7 insertions(+), 1 deletion(-) diff --git a/src/main/java/be/gyu/urlShortener/controller/MainController.java b/src/main/java/be/gyu/urlShortener/controller/MainController.java index 693998f..e557326 100644 --- a/src/main/java/be/gyu/urlShortener/controller/MainController.java +++ b/src/main/java/be/gyu/urlShortener/controller/MainController.java @@ -10,6 +10,7 @@ import org.springframework.web.bind.annotation.GetMapping; import org.springframework.web.bind.annotation.PathVariable; import org.springframework.web.bind.annotation.PostMapping; import org.springframework.web.bind.annotation.ResponseBody; +import org.springframework.web.util.UriComponentsBuilder; import be.gyu.urlShortener.service.MainService; import jakarta.servlet.http.HttpServletRequest; @@ -55,8 +56,13 @@ public class MainController { */ @GetMapping("/{shortUrl}") public void getShortUrl(@PathVariable(name="shortUrl") String shortUrl, HttpServletResponse response){ + // 단축 URL을 통해, 원본 URL을 가져옴. String originalUrl=mainService.getOriginalUrl(shortUrl); + // 가져온 원본 URL 값을 적잘한 URL이 될 수 있도록 Re-Direct하기 전에 URL-Encoding + String encodeUrl=UriComponentsBuilder.fromUriString(originalUrl).build().encode().toUriString(); + // Re-Direct 상태 코드 설정 response.setStatus(HttpStatus.MOVED_PERMANENTLY.value()); - response.addHeader("Location",originalUrl); + // Re-Direct 목적지(원본 URL) 설정 및 Re-Direct 처리 + response.setHeader("Location",encodeUrl); } }