[2010-05-16-1] の補完です。

今回の記事は元々、twittering-mode で StatusNet を使うために書きまし
た。しかし、twittering-mode 側の修正で対応することにしたので、私は
今現在設定していません。ニッチな層向けに残しておくことにします。

Identifox, twittering-mode, TweetDeck 以外に使えるクライアントがあ
れば、教えて下さい!

さて、説明に入ります。

statusnet は http://example.com/statusnet/ に構築し、
[2010-04-18-3] の Fancy URLs の設定を行ったものとします。

StatusNet の API は Twitter-compatible です。
ただし、[2010-05-16-1] で書きましたが、API の URL は少し異なります。

何らかの事情で Twitter クライアントを修正できない場合でも、Twitter
とパスを同じにすれば使えるかもしれません。Apache の mod_rewriteで置
換してみましょう。

※ /var/www は Debian における、Apache の DocumentRoot です。

/var/www/.htaccess

以下を設定します。

<IfModule mod_rewrite.c>
  RewriteEngine On
  RewriteBase /
  RewriteRule ^1/(.*)$ statusnet/api/$1
  RewriteRule ^search(.*)$ statusnet/api/search$1
</IfModule>

1 つ目の RewriteRule で http://example.com/1/ * へのアクセスを、
http://example.com/statusnet/api/ * に切り替えています。
この設定は必須です。

2 つ目の RewriteRule では検索時にアクセスする
http://example.com/search * を
http://example.com/statusnet/api/search * に切り替えています。

/var/www/statusnet/.htaccess

[2010-04-18-3] の設定も込みのパッチを貼り付けておきます。

--- /var/www/statusnet/htaccess.sample	2010-05-04 04:27:44.000000000 +0900
+++ /var/www/statusnet/.htaccess	2010-05-08 22:03:29.000000000 +0900
@@ -7,7 +7,7 @@
   #   http://example.com/        => /
   #   http://example.com/mublog/ => /mublog/
   #
-  RewriteBase /mublog/
+  RewriteBase /statusnet/

   ## Uncomment these if having trouble with API authentication
   ## when PHP is running in CGI or FastCGI mode.
@@ -15,6 +15,9 @@
   #RewriteCond %{HTTP:Authorization} ^(.*)
   #RewriteRule ^(.*) - [E=HTTP_AUTHORIZATION:%1]

+  # for twitter client
+  RewriteRule (.*)/status/(.*)$ notice/$2 [R=301,L]
+
   RewriteCond %{REQUEST_FILENAME} !-f
   RewriteCond %{REQUEST_FILENAME} !-d
   RewriteRule (.*) index.php?p=$1 [L,QSA]

各ツイートへの URL を変更する設定です。
http://example.com/statusnet/ <アカウント>/status/<ツイート番号> へ
のアクセスを、http://example.com/statusnet/notice/<ツイート番号> に
リダイレクトする設定です。

本当は /var/www/.htaccess に書きたかったのですが、うまくいきません
でした。