며칠 전에 워드프레스 301 리디렉션 작업을 의뢰받았습니다. 페이지 링크 하나를 다른 사이트의 URL로 리디렉션하는 작업이었습니다. 간단한 작업인 것으로 생각했지만 URL에 쿼리 스트링(쿼리 문자열)이 포함되어 있어서 .htaccess에서 리디렉션하는 것이 쉽지 않았습니다.
워드프레스 301 리디렉션 작업 (쿼리 문자열이 포함된 URL)
301 리디렉션은 주의하여 설정해야 SEO 문제가 발생하지 않습니다. 저는 워드프레스닷컴(WordPress.com)에서 운영하는 사이트를 설치형 워드프레스로 바꾸고 도메인과 함께 고유주소를 변경하면서 301 리다이렉트 설정을 잘못하여 방문자가 급감하는 경험을 한 적이 있습니다.
301 리디렉션을 설정할 때에는 다양한 상황에서 잘 작동하는지 꼼꼼히 테스트하는 것이 중요한 것 같습니다.
URL에 쿼리 스트링(Query String)이 포함될 경우 일반적인 방식으로 리디렉션을 설정할 수 없습니다. [**.htacess**] 파일에서 리디렉션을 설정하는 경우 다음과 같은 코드를 응용하여 테스트해볼 수 있습니다.
RewriteEngine On
RewriteCond %{REQUEST_URI} ^\/querypage\.php$
RewriteCond %{QUERY_STRING} ^id=([0-9]*)
RewriteRule ^(.*)$ https://new_domain.com/querypage/%1 [R=301,L]
특정 URL에 대하여 리디렉션을 제한하려는 경우...
# Redirect Query String
<IfModule mod_rewrite.c>
RewriteCond %{REQUEST_URI} ^/specific/url/
RewriteCond %{QUERY_STRING} key=value
RewriteRule (.*) /path/ [R=301,L]
</IfModule>
일반적인 URL보다 리디렉션 설정이 복잡하고 고려해야 할 사항도 많은 것 같습니다.
참고로 301 리디렉션은 영구적인 리디렉션이고 302 리디렉션은 임시 리디렉션입니다. 302 리디렉션을 일정 기간 이상 유지할 경우 영구적인 리디렉션으로 간주된다고 합니다.
개별 URL을 리디렉션하려는 경우 워드프레스에서는 Redirection 플러그인을 사용하면 간단하게 해결이 됩니다.
Redirection 플러그인은 현재 200만 개가 넘는 사이트에 설치되어 있으며 404 에러도 모니터링할 수 있습니다.
최신 버전의 경우 PHP 5.6 이상에서만 작동합니다.
또한, 워드프레스 버전이 낮을 경우에도 작동하지 않을 수 있습니다. 클라이언트 사이트의 경우 워드프레스 버전이 너무 낮아서 Redirection 플러그인이 설치되는 되었지만 작동하지 않은 문제가 발생했습니다.
이 경우 바람직한 방법은 1) 전체 사이트 백업을 하고 2) PHP 버전을 업그레이드하고 3) 워드프레스와 테마, 플러그인을 모두 업데이트하는 것입니다.
업데이트를 제대로 하지 않을 경우 사이트가 해킹당하거나 악성코드(멀웨어)에 감염될 수 있습니다.
참고
https://avada.tistory.com/2743
https://avada.tistory.com/1462