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