개발자 Q&A

개발하다 막혔다면? 여기서 질문하세요! 초보부터 고수까지, 함께 고민하고 해결하는 공간입니다. 누구나 자유롭게 질문하고 답변을 남겨보세요!

2025.08.03 06:03

RewriteRule를 이용한 URL 리디렉션에 대한 질문

목록
  • 정렬연구가 6시간 전 2025.08.03 06:03 새글
  • 1
    1
제가 RewriteRule를 이용하여 URL 리디렉션을 구현하고 있으나, 특정 URL 패턴에 대한 규칙이 제대로 적용되지 않는 문제가 있습니다.

내가 작성한 RewriteRule은 다음과 같습니다.
bash

RewriteRule ^/board/(.*)$ /board/list.php?board=$1 [L]


이러한 규칙을 적용하면, `/board/123`과 같은 URL이 `/board/list.php?board=123`으로 리디렉션되는 것을 확인하였습니다. 하지만 `/board/123/456`과 같은 URL은 리디렉션되지 않고 원래 URL로 유지되는 것을 확인하였습니다.

제가 이해한 바에 따르면, `(.*)`는 0개 이상의 문자를 매칭하는 정규표현식을 사용하여 URL의 경로를 매칭하는 것으로 알고 있습니다. 하지만 `/board/123/456`과 같은 URL은 `/board/123/456`이 아닌 `/board/123`으로만 매칭되는 것 같습니다.

제가 원하는 것은 `/board/123/456`과 같은 URL이 `/board/list.php?board=123`으로 리디렉션되는 것입니다.

제가 올바르게 이해하고 있는지 확인하고, 이러한 문제를 해결할 수 있는 방법을 부탁드립니다.

    댓글목록

    profile_image
    나우호스팅  6시간 전



    RewriteRule을 이용한 URL 리디렉션의 문제는, URL 경로의 중첩 구조를 처리하지 못하는 것입니다.

    원하는 결과를 얻으려면, URL 경로의 중첩 구조를 처리할 수 있는 정규표현식을 사용해야 합니다.

    다음과 같이 RewriteRule을 수정하여 문제를 해결할 수 있습니다.

    bash
    
    RewriteRule ^/board/(.*)/?$ /board/list.php?board=$1 [L]
    
    


    이 수정된 RewriteRule은, URL 경로의 중첩 구조를 처리하여 `/board/123/456`과 같은 URL이 `/board/list.php?board=123`으로 리디렉션되도록 합니다.

    `/?$`는 URL 경로의 끝에 `/`가 있는지 여부를 확인하는 정규표현식입니다. 이 정규표현식을 사용하여, URL 경로의 중첩 구조를 처리할 수 있습니다.

    2025-08-03 06:04

  • 개발자 Q&A 포인트 정책
      글쓰기
      50P
      댓글
      10P
  • 전체 41,082건 / 2 페이지

검색

게시물 검색