블로그 업데이트 중…

WordPress 2.7 관리자모드 테마에서 영향을 받은 나르시즘 테마입니다. 부재는 ‘그대 꿈꾸고 있는가?’ 정도…

XHTML 1.0 Transitional 에 따라 마크업을 했는데, 새로 설치한 갤러리 플러그인 때문에 CSS Validation만은 통과시키지 못했습니다.

프로필 페이지도 오랫만에 업데이트를 했고, 제가 잡지에 썼던 기사라거나 논문 출판과 관련된 내용을 정리하기 위해 Publications 페이지를 생성했습니다.

잡담성 글이나 별로 가치가 없다고 판단되는 글들을 정리했고, 잘 사용되지 않는 카테고리 기능은 전부 숨겨버렸습니다. 카테고리를 사용하지 않는 대신 태그들을 제 기준에 따라 다시 정리했습니다.

또 개인적으로 진행하고 있는 패치들이나 프로젝트들은 Projects에 정리해버렸습니다. 정리하다 보니 완성을 하지 않은 채로 손을 놓아버린 것들이 몇 가지 보이네요. 소외된 프로젝트에도 따뜻한 손길을 보내줘야할텐데 말이죠.

Continue reading 블로그 업데이트 중…

wordpress: 최근 추가한 플러그인들…

여기저기 돌아다니다 보니 멋진 플러그인들이 많길래 이것저것 추가해보았습니다.

1. Korean Trackback
이글루스에서 오는 트랙백이 euc-kr 로 인코딩되어 있기 때문에, utf-8 기반의 워드프레스에선 이글루스에서 보내는 트랙백을 제대로 받을 수 없기에… 직접 플러그인을 작성해서 추가해줬습니다. -_-v

url: http://b.mytears.org/2006/09/396

2. iG:Syntax Hiliter
혹시나 포스트에 프로그램 코드를 삽입할 일이 있을 경우를 대비해서, 코드 하일라이팅을 위한 플러그인을 추가했습니다. 상당히 많은 언어를 지원합니다만 sh (쉘스크립트) 는 지원하지 않아서 약간 아쉽네요. 사용 예는 아래와 같습니다.

url: http://blog.igeek.info/wp-plugins/igsyntax-hiliter/

3. wp-scripts, ajax-spoiler
wp-scripts 는 prototype.js 등을 헤더에 삽입해주는 역할을 하고, ajax-spoiler 는 tt 에서와 같이 텍스트를 숨겼다가 보여줬다 하는 기능을 사용할 수 있도록 해줍니다.

tt 처럼 그냥 단순히 보였다 감췄다 정도가 아니라 애니메이션 효과까지 줄 수 있어서 상당히 멋드러집니다. ;)

url: http://082net.com/tag/wp-scripts/
url: http://082net.com/tag/aj-spoiler/

4. bad behavior
request 를 분석해서 봇이라고 생각되면 차단합니다. 적용 후 확실히 스팸이 줄었습니다. (하루 120 통 쯤에서 10통 이하.. 그나마 akismet 에 나머지는 걸립니다.)

url: http://www.homelandstupidity.us/software/bad-behavior/

조금만 부지런하면 이래저래 편리해지는 아름다운 워드프레스 세상입니다. 혹시 또 멋진 플러그인들을 알고 계신 분들은 트랙백 부탁드리겠습니다. ;)

워드프레스를 https 와 함께 이용하는 방법!

개인정보의 유출에 민감하며, https 를 사용할 수 있는 서버를 가지고 있는 사용자들을 위한 간단한 rewrite rule 을 소개하고자 합니다. 오픈웹 사이트를 보면 워드프레스에서 사용자 등록, 로그인, 관리자 모드 등에서는 https 를 사용하도록 리다이렉션이 일어나는 모습을 확인할 수 있습니다.

시작하기에 앞서 이 방식은 아래의 조건을 만족해야 사용할 수 있습니다.

  1. 내 사이트를 https 로 접근이 가능
  2. mod_rewrite 를 사용가능
  3. .htaccess 를 이용 rewrite rule 을 override 가능

워드프레스 루트 디렉토리의 .htaccess 에 들어가야 할 rule 은 다음과 같습니다. (rewrite base 는 wp 의 root location 에 맞게 수정해주면 되겠습니다.)

# BEGIN WordPress
<IfModule mod_rewrite.c>
RewriteEngine On
RewriteBase /

# For a site running on port 443 (http over ssl)
RewriteCond %{SERVER_PORT} !^80$
RewriteRule !^wp-(admin|login|register)(.*) – [C] RewriteRule ^(.*)$ http://%{SERVER_NAME}/$1 [L]

# For a site running on port 80 (http)
RewriteCond %{SERVER_PORT} ^80$
RewriteCond %{REQUEST_FILENAME} -f [OR] RewriteCond %{REQUEST_FILENAME} -d
RewriteRule ^wp-(admin|login|register)(.*) https://%{SERVER_NAME}:10001/wp-$1$2
[L]

RewriteCond %{SERVER_PORT} ^80$
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule . /index.php [L] </IfModule>

뭔가 복잡하죠 :) 부분부분 설명을 드리자면 아래와 같습니다.

# For a site running on port 443 (http over ssl)
RewriteCond %{SERVER_PORT} !^80$
RewriteRule !^wp-(admin|login|register)(.*) – [C] RewriteRule ^(.*)$ http://%{SERVER_NAME}/$1 [L]

80번 포트가 아닌 포트로 접속한 경우를 https request 라고 판단을 하고, 그 중 request uri 가 wp-admin, wp-login, wp-register 와 관련된 것이 아닌 경우에 한해 80번 포트로 리다이렉션을 일으킵니다.

결과적으로 https://b.mytears.org:10001/2005/03/136 과 같은 url 을 http://b.mytears.org/2005/03/136 으로 연결시켜주는 역할을 합니다. (이 url 의 경우 개인적으로 심혈을 기울여 수정했음에도 봐주는 이가 없어서 -_-! 밀어주기를 위해 이런 예제에 자주 사용할겁니다. 캬캬)

# For a site running on port 80 (http)
RewriteCond %{SERVER_PORT} ^80$
RewriteCond %{REQUEST_FILENAME} -f [OR] RewriteCond %{REQUEST_FILENAME} -d
RewriteRule ^wp-(admin|login|register)(.*) https://%{SERVER_NAME}:10001/wp-$1$2
[L]

80번 포트로 들어오는 요청 들 중에 wp-admin, login, register 등과 관련된 것들에 한해서 https 로 리다이렉션 시킵니다. %{SERVER_NAME} 뒤에 :10001 이 붙은 것은 제 https 서버가 10001 포트에서 돌고 있기 때문입니다.

RewriteCond %{SERVER_PORT} ^80$
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule . /index.php [L]

지금까지 조건에는 해당되지 않은 경우들 중에 실제 서버에 있는 파일이나 디렉토리에 대한 요청이 아닌 경우 index.php 파일을 불러오게 됩니다. wordpress 의 fancy url 을 사용하는 경우를 위한 설정이 되겠습니다.

간단하죠? ;)

wordpress: korean trackback!

어제 까날옹이 egloos 에서 가볍게 트랙백을 날려주셨는데, egloos 에선 trackback 인코딩을 euc-kr 을 사용하는지 트랙백이 깨져서 와버렸네요. 혹시나 관련된 plugin 을 찾아봤지만 plugin 으로는 아직 존재하지 않는 듯 하고, 관련해서 wind-like 님이 문제를 해결한 버젼의 wp-trackback.php 파일을 배포하시더군요.

하지만 wordpress 기본 파일을 수정할 경우 업데이트를 할 때마다 다시 수정해줘야 하는 번거로움이 있기 때문에 그냥 plugin 을 작성해버렸습니다. 막상 plugin 을 작성하려고 보니 trackback_post 에 대한 action 은 글이 삽입된 이후에 실행되도록 되어 있더군요. 역시 그냥 wp-trackback.php 를 수정해서 사용해야 하는건가 하는 생각이 들었지만, 뭐 정도가 아니면 돌아가면 되는 법!! 이미 데이타베이스에 입력완료된 trackback 을 update 하도록 하는 hack 에 가까운 플러그인이 만들어져버렸습니다. -_-v

혹시나 필요한 분은 아래 url 에서 받아서 사용하시면 되겠습니다.

http://mytears.org/resources/distfiles/wp_korean_trrackback-1.0.zip

p.s) wind-like 님이 수정하신 버젼과는 다르게 ‘트랙백을 받는 경우’ 하고만 관련이 있습니다.