[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 に書きたかったのですが、うまくいきません
でした。