이 주제에 대해서 글을 쓰게 된 계기는 제가 현재 겪고 있는 문제 때문으로 태그와 카테고리 주소에 다른 문자가 추가되어서 퍼머링크 404 오류가 발생하고 있기 때문입니다.
처음에는 일시적으로 발생한 오류로 생각하고 301 리다이렉트 설정을 하였는데 수가 많아지면서 무언가 잘못되었다는 생각에 검색을 통해서 알아보려고 했는데 정확히 제가 겪는 문제에 대해서는 나오지 않았습니다.
그러다 최근에 처음에 보여지는 게시물 숫자를 줄인 기억이 나서 해당 부분으로 검색을 하니 퍼머링크 이슈라는 외국의 게시물을 볼 수 있었습니다. 제가 겪은 문제의 해결 방법이라는 확신은 없었지만 많이 겪는 문제이고 설정을 해두면 좋겠다는 생각에 적용하게 되었습니다.
퍼머링크 404 오류는 404 모니터링을 하는 분들이라면 문제가 발생한 것을 바로 알 수 있을 것입니다. 하지만 404 모니터링을 하지 않는 분들이라면 그냥 지나치게 되는 부분이라고 할 수 있습니다.
그렇다면 이 퍼머링크 404 오류는 가만히 놔두어도 문제가 생기지 않을까 궁금증이 생기는데 게시물 주소일 경우에는 문제가 생길 수 있지만 태그나 카테고리 같은 경우에는 SEO 측면에서 문제가 아니라는 글을 볼 수 있었습니다.
하지만 제 생각에는 태그나 카테고리도 검색에 반영이 되는 만큼 장기적으로 본다면 어떤 식으로든 문제가 생길 것이라고 생각합니다. 그래서 저도 현재 상황에서는 문제가 생기지 않고 있지만 수정을 하려고 하는 것입니다.
그러면 순서대로 지금까지 알아본 퍼머링크 404 오류를 수정하는 방법을 몇 가지 알아보겠습니다. 쉬운 방법부터 정리할 것이기 때문에 순서대로 해보면서 오류가 수정이 되는지 확인하시면 되실 것입니다.
목차
퍼머링크 404 기본 해결 방법
먼저 가장 많이 언급이 된 방법으로 워드프레스 관리자 화면에서 설정 > 고유 주소로 들어간 후에 카테고리 기본 category, 태그 기본 tag 라고 입력한 후에 하단에 변경사항 저장하기를 클릭하게 되면 퍼머링크 오류가 해결된다고 합니다.
이 방법으로 해결을 하신 분들도 있지만 기본적으로 상단에 오류 메시지가 보이지 않는다는 전제에서만 가능한 부분으로 해결이 되지 않는다면 다음 방법을 해보시길 바랍니다.
functions.php 코드 추가
위의 방법이 되지 않아서 그 다음으로 한 방법은 퍼머링크 플러시를 통해서 재설정을 하는 것으로 테마 편집기에서 Functions.php 제일 하단에 Flush_rewrite_rules(); 추가하면 됩니다.
이 방법은 대부분 추천을 하지 않는다고 하는데 이유는 지속적으로 수행을 하기 때문에 비용이 많이 들 수 있다는 점 때문입니다. 그래서 일정 시간만 해서 오류 확인을 해보고 그래도 발생한다면 삭제를 하시기 바랍니다.
아파치 기준 설정
아파치 서버 라이트세일을 사용하는 기준으로 마지막 방법은 mod_rewrite 모듈과 Allowoverride 활성화하는 것으로 서버에 접속하는 것이 처음이신 분들은 어려울 수 있습니다.
하지만 라이트세일은 SSH 사용하여 연결이 가능하기 때문에 어렵지 않게 하실 수 있을 것입니다. 그러면 수정 방법을 알아보기 전에 두 설정이 무엇인지 간단하게 알아보겠습니다.
mod_rewrite 모듈 : URL을 동적으로 전환 및 재작성할 수 있도록 하는 아파치 확장 모듈입니다.
Allowoverride : .htaccess 파일 허용 여부에 관한 아파치 지시자
라이트세일 기준으로 설명을 드리면 SSH 사용하여 연결로 접속하신 후에 sudo nano /opt/bitnami/apache2/conf/httpd.conf 입력하게 되면 위와 같은 화면이 나오게 됩니다.
여기서 modules/mod_rewrite.so 부분을 찾아서 앞에 있는 # 표시를 삭제하게 되면 mod_rewrite 모듈이 활성화됩니다.
그 다음 더 내려서 보게 되면 AllowOverride 설정을 볼 수 있고 none 되어 있는 부분을 All 으로 바꾸게 되면 활성화할 수 있습니다. 모든 설정을 하였다면 Ctrl + X 눌러서 저장을 하시면 됩니다.
마지막으로 아파치 서버를 재부팅 해야 하는데 sudo /opt/bitnami/ctlscript.sh restart apache 이라고 입력해서 실행하시면 됩니다.
htaccess 수정
위의 방법으로도 제대로 되지 않는다면 .htaccess 에 아래의 내용이 있는지 확인하거나 없다면 추가를 해주시면 됩니다.
# BEGIN WordPress
<IfModule mod_rewrite.c>
RewriteEngine On
RewriteBase /
RewriteRule ^index\.php$ – [L]
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule . /index.php [L]
</IfModule>
# END WordPress
.htaccess 수정할 때는 위에서도 언급을 하였지만 백업을 받아두시는 것이 좋습니다. 수정을 한 후에 사이트 접속에 문제가 발생할 수 있습니다. 퍼머링크 404 오류 수정을 위한 제가 찾은 방법들을 정리해보았는데 현재 제가 겪은 문제는 위의 방법으로는 해결이 되지 않았습니다.
현재도 문제 해결을 위해서 많은 외국의 문서를 보고 있지만 정확한 답을 찾지 못하고 있습니다. 오류가 생길 때마다 301 리다이렉트를 하고 있는데 아마 서버에 문제가 생기지 않았나 생각하고 있습니다.
추후에 제가 겪은 문제에 대한 해답을 찾게 된다면 수정의 결과를 확인하고 여기에 추가적으로 글을 작성하도록 하겠습니다. 오늘 알아본 퍼머링크 404 오류는 많이 발생하는 문제인 만큼 위의 방법으로 해결을 하셨으면 합니다.
※ 그 동안 제가 발생했던 문제에 대해서 계속 알아보았지만 해결이 되지 않아서 혹시나 하는 생각으로 테마를 하루 동안 변경을 해보았습니다. 그 결과 제가 겪은 문제가 해결이 되었습니다. 정확한 이유는 저도 초보이기 때문에 알 수 없지만 테마에 의한 404 오류로 판단되고 있습니다.
그래서 테마를 삭제하고 다시 설치를 해서 결과를 기다리고 있습니다. 만약에 재설치후에도 발생한다면 테마를 변경해야 할 것 같습니다.
▶ 번역 플러그인 ‘GTranslate’ 설치부터 설정 방법까지
▶ 워드프레스 글 사이에 관련 게시물 추가하는 플러그인