[メモ]特定のディレクトリをhttpsへ[memo]

連投・・・

仕事で入力系がある箇所をhttpsにし、それ以外をhttpとしたいという感じになったので、調べた・・・

結構な数のファイルがあるので、対象のページへのリンクをhttpsにしたりhttpにするというのは、ちょっとアフォな感じだったので、mod_rewriteを使用する方向で。

htdocs直下の.htaccessに以下のように記述

<IfModule mod_rewrite.c>
    RewriteEngine on
    RewriteCond %{SERVER_PORT} 443 #httpsでアクセスがある場合にhttpへリダイレクト
    RewriteRule ^(.*)$ http://%{HTTP_HOST}%{REQUEST_URI} [R,L]
</IfModule>

httpsにしたいディレクトリの.htaccessには以下のように記述

<IfModule mod_rewrite.c>
    RewriteEngine on
    RewriteCond %{SERVER_PORT} 80 #httpでアクセスがあった場合httpsへリダイレクト
    RewriteRule ^(.*)$ https://%{HTTP_HOST}%{REQUEST_URI} [R,L]
</IfModule>

ただし、共通で使用するファイルなどがある場合(たとえば、cssやjs、画像ファイル)、そのディレクトリの.htaccessは以下のように記述すると、どちらからのアクセスであってもhtdos直下で設定した.htaccessに影響されないようになる。

<IfModule mod_rewrite.c>
    RewriteEngine off
</IfModule>

これを設定しないと、httpsでアクセスしているページでの読み込みでセキュリティエラーになる。chromeだとファイルがよみこまれないようなるなど・・・IEだとアクセスする度にセキュリティが~といわれる・・・orz

ということで、上記のように書くといいらしいです。

スポンサーリンク

[メモ]プログラムによるpdf出力[memo]

久しぶりに・・・
書く時はいつも久しぶり・・・

IEでSSL環境下の場合にPDFファイルをプログラムで出力すると、セキュリティがうんたらかんたらと言われるというのがある。

IE意外だと以下のように書くと普通に出力(表示)される。

header('Content-type: application/pdf');
readfile('original.pdf');

IEだと以下のヘッダーがないと上手くいかない

header("Pragma: public"); //<----- これ
header("Cache-Control: public, must-revalidate"); //<----- これ
header('Content-type: application/pdf');
readfile('original.pdf');

※たぶん古いIEで出る現象だったきがする・・・

スポンサーリンク

[Facebook]Fbページのカバー画像[メモ]

かなり久しぶりの更新です。

Facebookページのカバー画像についてちょっとしたメモを・・・

graph APIでカバー写真のデータを取得できるのですが、サイズが合わないものがあります。。。
現在のカバー写真のサイズは、851×315で表示されるようになっているらしい。

graph APIで取得したイメージは丁度のものから、縦サイズが大きいものがあったりします。
縦サイズが大きい場合、大抵cover.offset_yに値が入っています。

で、ピクセル的に何ピクセルのoffsetかというところになるんですが、、、

その計算式をメモしておきます。。

まず、ソースの縦横サイズを取得
$size = getimagesize($data[‘cover’][‘source’]);

で、オフセットの取得
$offset_y = ceil($data[‘cover’][‘offset_y’]/100*((851/$size[0]*$size[1])-315));

$url = str_replace(“/s720x720/”, “/c0.”.$offset_y.”.851.315/p851x315/”, $data[‘cover’][‘source’]);

とりあえずここまで・・・

スポンサーリンク

[メモ]PHPからmongoDBへbigintのinsertの仕方

またしても、私的メモです。

こちらのマニュアル通りこれを使うとbigintが入ります・・・
mongoInt64

■insertの仕方

//接続
$obj_connection = new Mongo();
//db選択
$db = $obj_connection->hoge_db;
//collection選択
$collection = $db->hoge_collection;
$collection->insert(array("id"=>new MongoInt64(220309509225197578)));

・コンソールでinsertされた値をみてみると以下の様に入っていることがわかる。
“id” : NumberLong(“220309509225197578”)

追記:
phpでの取得の仕方

//接続
$obj_connection = new Mongo();
//db選択
$db = $obj_connection->hoge_db;
//collection選択
$collection = $db->hoge_collection;
$collection->find(array("id"=>aray('$gt'=>new MongoInt64(220309509225197578))));

スポンサーリンク