PHPによるHTTP 認証[php.net]ができることを知って、早速試してみたのだが、認証画面が繰り返し表示されてしまう。
$_SERVER["PHP_AUTH_USER"]が取得できていないようだ。
Webを検索してみると、さくらのレンタルサーバーだとPHPがCGIとして動作するため、うまく動作しないとの情報が。
よく見ると、php.netにも以下の情報がありました。
でも、ロリポップではやはり動作しない。まあ、PHPで認証すればいいと言われればその通りだ。There are .htaccess which actually works for us (cPanel + phpsuexec) unless others failed. Perhaps it may help someone.# PHP (CGI mode) HTTP Authorization with ModRewrite:RewriteEngine onRewriteCond %{HTTP:Authorization} ^(.*)RewriteRule ^(.*) - [E=HTTP_AUTHORIZATION:%1]Then you need small piece of php code to parse this line and then everything will work like with mod_php:if (isset($_SERVER['HTTP_AUTHORIZATION'])){$ha = base64_decode( substr($_SERVER['HTTP_AUTHORIZATION'],6) );list($_SERVER['PHP_AUTH_USER'], $_SERVER['PHP_AUTH_PW']) = explode(':', $ha);unset $ha;}
0 件のコメント:
コメントを投稿