아하
  • 토픽

  • 스파링

  • 잉크

  • 미션


오늘의 열심답변자

오늘의 열심답변자

개별 주소를, 도메인 주소로 통일 시키는방법

html관련 질문드립니다.

작성한 게시글의 원고유 주소가 노출이 되지않고

도메인 주소 or 도메인주소 + 게시글 제목이

페이지 주소로 노출이 되게 하는방법이 있을까요?

원고유의 주소는 어쨋든 긴 주소이니만큼 예뻐보이진 않아서요

ex) http://www.naver.com/234324/456sadjksadjal.com

이런 주소를 깔끔하게 그냥

www.naver.com으로만 보이도록 또는 www.naver.com/글제목

요런식으로 표시하게 하는 방법에 대해 문의드려봅니다.

    5개의 답변이 있어요!

    • 프알못

      프알못

      비슷한 예시로 Stack Overflow가 있습니다.
      https://stackoverflow.com/questions/824349/how-do-i-modify-the-url-without-reloading-the-page
      Stack Overflow의 한 URL 예시입니다.
      꼭 필요한 주소는 https://stackoverflow.com/questions/824349으로 끝나지만, 그 뒤에 제목이 붙어 있습니다.

      백엔드는 손대지 않고 HTML만으로 하시려면
      원래 URL이 https://my-domain.test/articles/5321432였다면
      URL 뒤에 #을 붙여서 https://my-domain.test/articles/5321432#글-제목으로 표시하거나
      React, Vue, Svelte 등을 사용해 SPA로 만드는 게 최선인 듯 합니다.

      <script> location.hash = encodeURIComponent("글-제목"); </script>

      이런 스크립트로 간단하게 페이지 로딩 시 URL에 글 제목이 들어가도록 할 수 있습니다.

      백엔드도 손댈 수 있는 경우라면 어떤 프레임워크인지에 따라 다르지만
      /articles -> 글 목록
      /articles/* -> 글 보기
      / -> 홈
      기존 방식에서 URL에 따른 페이지가 위처럼 이런 식으로 대응된다면
      /* -> 글 보기 (또는 /articles/*로 포워딩 등)
      이렇게 하나 추가하는 방법이 있습니다.

    • 안녕하세요

      우선 웹서버에 그누보드를 설치했다면 아래처럼

      /etc/nginx/sites-available/default 파일에 코드를 추가해주시면 됩니다

      #### 그누보드5 nginx rules BEGIN ##### if (!-e $request_filename){ rewrite ^/content/([0-9a-zA-Z_]+)$ /bbs/content.php?co_id=$1&rewrite=1 break; rewrite ^/content/([^/]+)/$ /bbs/content.php?co_seo_title=$1&rewrite=1 break; rewrite ^/rss/([0-9a-zA-Z_]+)$ /bbs/rss.php?bo_table=$1 break; rewrite ^/([0-9a-zA-Z_]+)$ /bbs/board.php?bo_table=$1&rewrite=1 break; rewrite ^/([0-9a-zA-Z_]+)/write$ /bbs/write.php?bo_table=$1&rewrite=1 break; rewrite ^/([0-9a-zA-Z_]+)/([^/]+)/$ /bbs/board.php?bo_table=$1&wr_seo_title=$2&rewrite=1 break; rewrite ^/([0-9a-zA-Z_]+)/([0-9]+)$ /bbs/board.php?bo_table=$1&wr_id=$2&rewrite=1 break; } #### 그누보드5 nginx rules END #####

      ------------------

      아래 캡쳐사진은 제가 운영하는 서버에 위 코드를 설정한 내용입니다

    • 톰캣의 prefix기능을 이용하여 특정 url경로를 받았을때 해당 소스페이지에가서 해당 데이터를 조회하게 하는 기능을 구현하실수 있습니다

      자바의 경우라면 스프링을 이용해서 컨트롤러 단에서 url 처리하는 작업을 통해서 경로를 이쁘게 수정하실수 있습니다

      Restful api를 추가적으로 검색해서 보신다면 좀더 도움이 되실거 같습니다

    • URL을 효율적으로 관리하는 방법은 크게 2가지가 있습니다.

      1. Shorten URL
      말 그대로 복잡한 URL을 짧게 줄여 리디렉션하는것으로
      장점은 금방 만들수 있다는것
      단점은 url이 난해한 이름이라는 점입니다.
      대표적으로 Bitly가 있습니다.

      2. DNS(Domain Name System)
      개인 도메인 혹은 무료 도메인을 가지고 있다면
      도메인 제공업체의 서비스를 통해서 간단하게 연결을 할 수 있습니다.
      DNS 용어는 간략하게 다음과 같으며, 업체별 인터페이스가 달라 답변을 참고로 업체에 문의하면 빠르게 대응이 될 것입니다.
      보통은 블로그용 도메인 설정이 있습니다.

      • 네임서버

        도메인 업체의 서버를 통해 사이트를 연결해줍니다.

      • A 레코드

        도메인을 IP와 연결합니다.

      • CNAME

        도메인을 서버주소와 연결합니다.

      • MX 레코드

        도메인과 메일을 연결합니다. ({id}@{domain})

    • 조금 지저분해보이는 url로 페이지를 이동했을 때, 자바스크립트를 이용해서 실제 이동하지는 않았지만 주소가 바뀌어 보이도록 변경은 가능은 합니다만, 개인적으로 그런 방식은 추천드리지 않고 싶네요. 바뀐 주소가 사실 존재하지 않는 url이 되는 것이기도 하고, 바뀐 주소에서 사용자가 새로고침 했을 때 결국 바뀌어진 url만 가지고 원래 정보를 서버로부터 가져와야 할테니까요.

      애초에 url을 원하시는 형태로 들어가도 서버에서 데이터를 불러올 수 있도록 설계하시는 게 어떨까 합니다. 제목을 고유하게 만든다던지 하는 방법으로 말이죠. Primary key가 노출되는게 싫으시다면 uuid같은 걸 key로 사용하실 수도 있습니다.