DreamHost StatusNet API帐户验证失败解决方法
DreamHost已经支持StatusNet一键安装,按道理对StatusNet支持应该非常好,实际支持的可不太好,在尝试使用twidroid的时候,却发现无法通过验证,又是一顿检查代码,发现是因为PHP_AUTH_USER与PHP_AUTH_PW这两个环境变量没有传递到PHP脚本中导致的。
DreamHost中PHP是使用fcgi方式运行的,很可能是fcgi配置的时候把某些变量给抛弃掉了,我们需要重新给他加回去:
<IfModule mod_rewrite.c>
RewriteEngine on
RewriteRule .* - [E=HTTP_AUTHORIZATION:%{HTTP:Authorization},L]
</IfModule>
这样整个StatusNet重写规则看起来就是:
<IfModule mod_rewrite.c>
RewriteEngine On
RewriteBase /status/
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule (.*) index.php?p=$1 [L,QSA]
</IfModule><IfModule mod_rewrite.c>
RewriteEngine on
RewriteRule .* - [E=HTTP_AUTHORIZATION:%{HTTP:Authorization},L]
</IfModule><FilesMatch "\.(ini)">
Order allow,deny
</FilesMatch>
这个重写规则改天需要仔细想想原理。
