[astro]

Astro URL 조정방법

Last updated on

URL에서 “/blog/“를 빼고 싶다.

호기롭게 Astro로 옮기고 나서 아무 생각 없이 바꿨다는 것에 만족하고 그대로 공개를 해버렸고 언제나처럼 하나씩 수정해 나갈 생각을 하고 있었다. 정말 아무 생각이 없었는데.. tag 설정을 해봐야겠다는 생각에 공식사이트를 보면서 이리저리 만지다 한동안, 꽤 긴 시간 등한시 했던 Google Aanalytics를 설정해야겠다 생각하며 접속을 하고 나서야 내가 무슨 짓을 저지른 건지 깨우쳤다.

대수롭게 생각하지 않고 있었는데 그래도 다년간 유지해 온 것이 아깝다는 생각에 기존과 동일한 URL을 적용하는 법을 부랴부랴 찾아가며 삽질을 시작했다. 한글 번역은 미비한 편이라 이것저것 설정을 만지다 우연히 알게 된 내용이다.

# 초기 설정 적용
https://sapjil.net/blog/post

# 개선 후
https://sapjil.net/post

상기와 같이 초기 설치 후 만들어진 주소는 blog를 경유하게 되어있다. md파일을 관리하는 폴더가 blog로 되어 있어서 당연한 구조라면 구조다. 단지, 지금까지 domain/post처럼 도메인 이후에 바로 포스팅 주소가 오는 형식의 URL로 운영해 오고 있었던 터라 이걸 동일하게 구현하고 싶었다.

소스 중에서 {/blog/${post.slug}/}에 답이 있었다. 이 녀석을 {/${post.slug}/}로 바꿔주면 blog 폴더에 있는 md 파일들이 /blog/를 경유하지 않게 된다. 개인적으론 나름 대발견. 깔끔하게 내가 원하는 답을 구하지 못해 전전긍긍하던 와중이어서 무척 기뻤다.

{`/blog/${post.slug}/`} => sapjil.net/blog/post
{`/${post.slug}/`} => sapjil.net/post

URL에서 blog를 지우기 위해 관련된 내용들을 전부 검색하니 소스 여기저기서 나오고 있었는데 특히 getCollection('blog')는 일부 파일에서 포맷을 지키지 않을 경우 제대로 동작하지 않는 것을 알게 되었다. getCollection('/')로 바꿔 봤지만 의미없는 행동이었음.

결국 수정 중이던 것들을 모두 리셋하고 다시 처음부터 수정을 하는 도중에 index 페이지에 리스트를 출력시키는 과정에서 시험 삼아 /blog/${post.slug}/의 주소를 /${post.slug}/로 바꾸니 잘 움직인다는 것을 알게 된 거였다. 아마 이런 방법으로는 사용을 하지 않겠지만 개인 블로그 정도의 규모에선 딱 좋은 방법이라 생각된다.