XE에서 워드프레스로 이전 후 깨지는 링크 처리

TunaLabs에서는 최근에 제로보드 XE에서 워드프레스로 이전 후 기존 유저들이 사용 중인 XE 링크 체계가 워드프레스와 호환되지 않는 문제가 있는데요. 이번에는 TunaLabs에서 워드프레스로 이전 후 맞딱드린 URL 관련 문제와 그에 대한 해결책을 소개합니다.

 

 

문제

이전 작업 후 워드프레스 설정으로 https://blog.tunalabs.io/7777 와 같은 링크는 정확한 포스트로 리다이렉트 되므로 문제가 없지만,

다음 링크들은 엉뚱한 페이지로 연결되기 때문에 방문자의 불편이 따릅니다.

  • https://blog.tunalabs.io/mid_blahblah/7777
  • https://blog.tunalabs.io/?document_srl=7777
  • https://blog.tunalabs.io/?mid=electronics?document_srl=7777
  • https://blog.tunalabs.io/index.php?document_srl=7777
  • https://blog.tunalabs.io/index.php?mid=electronics?document_srl=7777

사이트 내, 위와 같은 URL은 MySQL에서  다음의 SQL 문을 돌려서 자체적으로 바꿔서 처리하면 되었으나,

다른 사이트에 링크된 URL 들은 생각처럼 쉽게 바꿀 수 없었습니다.

 

 

 

 

솔루션

이 솔루션은 위 문제의 링크와 링크 내 Query String에 document_srl=7777 값이 있을 경우 올바른 URL로 리다이렉트될 수 있도록 합니다.

TunaLabs에서는 다음 링크 내 document_srl 이라는 Query string 값을 서버단 URL Rewrite모듈에서 추출하여 정확한 URL로 리다이렉트 시키는 방법을 취했습니다.

  • https://blog.tunalabs.io/?document_srl=7777
  • https://blog.tunalabs.io/index.php?mid=electronics?document_srl=7777

 

1. 워드프레스 Permalink 설정변경

URL 형식을 https://blog.tunalabs.io/post_id = https://blog.tunalabs.io/7777 와 같이 변경합니다.

이 글에 앞서 올린 [제로보드 XE에서 워드프레스로 이전하기] 포스트를 참고하여 이전하신 경우

XE의 document_srl 이 7777 이면 https://blog.tunalabs.io/7777 로 접속할 수 있게 해줍니다.

 

 

2. URL Rewrite규칙 작성 – IIS web.config 파일 수정

TunaLabs에서 작성한 URL Rewrite의 시나리오는 다음과 같습니다.

Rewrite rule 1:

유저가 접속한 URL에 document_srl 이라는 Query String이 존재하면 무조건 올바른 페이지로 라우팅합니다.

URL의 예시는 다음과 같습니다.

  • https://blog.tunalabs.io/?mid=electronics?document_srl=7777
  • https://blog.tunalabs.io/index.php?document_srl=7777
  • https://blog.tunalabs.io/index.php?mid=electronics?document_srl=7777

이 규칙이 적용되면 이후 규칙은 무시됩니다.

 

Rewrite rule 2:

유저가 접속한 URL에 XE에서 사용하는 document_srl 이외의 Query String이 존재하는지 검사합니다.

있을 경우 404페이지로 라우팅 합니다.

 

URL의 예시는 다음과 같습니다.

  • https://blog.tunalabs.io/?mid=electronics
  • https://blog.tunalabs.io/index.php?mid=electronics?chicken_price=7777

이 규칙이 적용되면 이후 규칙은 무시됩니다.

 

Rewrite rule 3:

XE의 짧은주소를 사용하는 경우 URL 형식이 아래와 같을 경우 올바른 페이지로 라우팅합니다.

  • https://blog.tunalabs.io/mid_blahblah/7777
  • https://blog.tunalabs.io/category/7777

이 규칙이 적용되면 이후 규칙은 무시됩니다.

 

 

그럼 이제 IIS 서버 web.config 파일을 수정해봅시다.

IIS web.config 파일에 워드프레스의 기본 URL Rewrite 규칙이 포함된 다음의 코드를 추가합니다.

 

 

위 코드를 web.config 에 적용 후 [IIS 관리자 – URL Rewrite] 페이지에서 URL Rewirte 규칙이 적용된 모습입니다.

 

 

위 솔루션을 적용하면 유저가 기존 링크로 접속했을 때 서버에서 올바른 링크로 라우팅 해줍니다.

 

 

 

 

해결

지금까지 XE에서 워드프레스로 이전 후 링크 처리에 대한 방법을 알아보았습니다.

저처럼 URL Rewrite 규칙을 작성하느라 시간 버리는 일이 없도록, 이 글이 당신의 시간을 절약해 줄 수 있기 바랍니다.

 

 

 

 

2 thoughts

  1. 안녕하세요 참치(まぐろ)님
    뭐좀 여쭤 볼려고 펜을 들었습니다

    참치님의 서버는 MS 서버인가요?
    제 서버는 CentOs7입니다
    IIS web.config 파일은 CentOs7 에서 어느 파일에 해당 되나요?
    CentOs7에서의 방법은 없을까요?
    완전히 초보라 자세히 알려 주시면 그데로 복사해서 붙여 넣기 하는 수준입니다
    자세히 알려 주신다면 대단히 감사하겠습니다

    늘 건강히 안녕히 계십시요

Leave a Reply

Your email address will not be published. Required fields are marked *