WordPress permalink(고유주소) 변경

WordPress의 permalink(고유주소) 형식을 변경하면 검색 엔진을 포함해서 외부에서 들어 오는 링크가 동작하지 않는다. 서버에 대한 root권한이 없다면 .htaccess file에, 권한이 있다면 apache2.conf에 새로운 형식의 permalink로 연결되도록 설정해 주는 것으로 이 문제를 해결 할 수 있다.

처음에는 서버를 재시작 할 필요가 없는 .htaccess에 관련 설정을 했었는데,  아파치 튜토리얼: .htaccess 파일 문서에 .htaccess file 설정은 성능에 영향을 미칠 수 있으므로 권한이 있는 경우라면 apache2.conf에 설정하라는 이야기가 있어서 이것을 수정했다.

먼저 Apache2의 rewrite module을 enable한다.

$ sudo a2enmod rewrite

그다음 apache2.conf에 관련 설정을 추가한다.

#
# Rewrite settings.
#
# Articles
#    e.g) ~/archives/1234 -> ~/?p=1234
# Tags/Categories
#    e.g) ~/archives/tag/database -> ~/?tag=database
# Dates
#    e.g) ~/archives/date/2013/02 -> ~/?m=201302
<IfModule mod_rewrite.c>
    RewriteEngine On
    RedirectMatch 301 ^/archives/(\d+)$ http://54.179.110.104/?p=$1
    RedirectMatch 301 ^/archives/(\w+)/(\w+)$ http://54.179.110.104/?$1=$2
    RedirectMatch 301 ^/archives/date/([0-9]{4})/([0-9]{2})$ http://54.179.110.104/?m=$1$2
</IfModule>


이 설정은 이전의 /archives/xxxx 형식의 글이나, /archives/tag/xxxx 형식의 tag, /archives/yyyy/mm 형식의 날짜를 “Ugly”한 기본 형식으로 변경하기 위한 것이다.

마지막으로 Apache2 서버를 재시작해준다.

$ sudo service apache2 restart