正しい作法にのっとったメンテナンス画面を出すための.htaccessサンプル

2009/6/16 火曜日 Posted in サーバ, 記事紹介・リンク | 1 Comment »

本日はケータイに限定された話題ではありませんが、Web担当者ForumさんにApacheで正しい作法でメンテナンス画面を表示するための方法が説明された良記事がありましたのでご紹介したいと思います。   → Web担当者Forum メンテナンス中画面を出す正しい作法と.htaccessの書き方 [forum.impressrd.jp]   Webサイトを運営している場合、コンテンツやプログラム更新作業などでメンテナンス表示を出したいことは多いと思います。 この記事では、利用者にも検索エンジンにも適切にメンテナンスを通知するためのやり方が解説されています。   ポイントとなるのは次の2点です。 .htaccess(もしくはhttpd.conf)とmod_rewirteを使ってどのページにアクセスされてもメンテ画面が出るようにする 検索エンジンには503を返し、メンテ中画面をインデックスされないようにする   具体的な例としては次のようなサンプルが掲載されています。 ErrorDocument 503 /maintenance.html <IfModule mod_rewrite.c> RewriteEngine On RewriteCond %{REQUEST_URI} !=/maintenance.html [NC] RewriteCond %{REMOTE_ADDR} !=192.168.0.4 RewriteCond %{REMOTE_ADDR} !=192.168.0.5 RewriteRule ^.*$ - [R=503,L] </IfModule> <IfModule mod_headers.c> Header set ... Read more..

ケータイ用Apacheモジュールの「mod_chxj」がバージョンアップ – 機種情報やカナ変換をサポート

2008/12/4 木曜日 Posted in サーバ, 記事紹介・リンク | 4 Comments »

携帯電話向けに絵文字や画像の変換を行ってくれるApacheモジュール「mod_chxj」が、12/4付けで「0.12.24」にバージョンアップしたとのことです。 → Devel::Bayside さらに使いやすくなった mod_chxj [d.hatena.ne.jp] → SourceForge.jp mod_chxj リリース情報 0.12.24 [sourceforge.jp]   機種固有情報の取得や、全角カナ→半角カナの変換機能が追加されたようです。 機種固有情報はサーバ変数にセットされ、PHPであれば「$_SERVER」を利用して取得できるようです。 例: $_SERVER['HTTP_X_CHXJ_PROVIDER'] 他にも次のような値が取得できるようです。 HTTP_CHXJ_HTTP_USER_AGENT => ユーザエージェントが入る HTTP_X_CHXJ_PROVIDER => 0 => 'unknown', 1 => 'docomo', 2 => 'au', 3 => 'SoftBank' HTTP_X_CHXJ_PROVIDER_STRING => 'docomo'などの文字が入る(上記参照) HTTP_X_CHXJ_DEVICEID => 機種名(短)が入る HTTP_X_CHXJ_DEVICENAME => 機種名(長)がはいる HTTP_X_CHXJ_HTMLSPECTYPE ... Read more..

IPアドレスからケータイやクローラの判別などを行えるApacheモジュール「mod_cidr_lookup」

2008/8/25 月曜日 Posted in 記事紹介・リンク | 1 Comment »

KLab株式会社さんが、ケータイやクローラの判別などに使えるApacheモジュール「mod_cidr_lookup」を公開したようです。 → KLab株式会社 DSAS開発者の部屋 ケータイやクローラの判別などに使えるmod_cidr_lookupを公開しました [klab.org] → クラブラボ Mod cidr lookup プロジェクトサイト [klab.org] → SourceForge mod_cidr_lookup Downloadページ [sourceforge.net]   「mod_cidr_lookup」は、アクセスしてきたクライアントのIPアドレスが、指定したCIDRブロック群のいずれかにマッチするかどうかを判別するApacheモジュールで、Apache 2.0と2.2系に対応しているとのことです。 マッチした結果は環境変数に入るので、mod_rewriteの設定や、プログラムから(例えばPHPであれば$_SERVERから)利用できるようです。   機能的にはこちらに近い感じでしょうか。 → グニャラくんのグニャグニャ備忘録@はてな PHPで高速に携帯ゲートウェイのIPから携帯キャリアを判別する [hatena.ne.jp] ただこちら「mod_cidr_lookup」の方が、Apacheモジュールなので、動作が高速であること、プログラムレベルから意識せずシンプルに利用できること、環境変数にセットされることからmod_rewriteなどから利用できること、などからメリットも多そうです。   使い方は、上でご紹介したKLabのプロジェクトサイト内で詳しく解説されています。 ユーザエージェントで振り分ける方式では偽装が不安という方は、利用してみてはいかがでしょうか。   関連: ゆめみのmod_ktaiがとうとうリリース、しかも無償利用が可能 携帯向け自動変換用Apacheモジュール「mod_chxj」が0.10系にバージョンアップ 絵文字や画像の自動変換を行ってくれるApacheモジュール「mod_chxj」を使ってみました(インストール編) Read more..

ケータイで「mod_rewrite + セッション」を使う際の注意点

2008/6/6 金曜日 Posted in DoCoMo, サーバ | 4 Comments »

ここ最近は大きなニュースが多く、ニュース記事の紹介ばかりでしたので、ひさしぶりに技術メモ的なものを書きたいと思います。   先日mod_rewriteを使っていて、セッション絡みで少しつまづいた件をご紹介します。 実はPHPで動いているページを、「*.html」として静的コンテンツに見せる、というものを作ろうとしていました。 .htaccessの内容としては次の通りです。 <IfModule mod_rewrite.c> RewriteEngine On RewriteRule ^([0-9A-Za-z~_\-\.]+)\.html$ /viewer.php?p=$1 [L] </IfModule>   ブラウザで正常に動作することを確認し、その後ドコモの実機でテストしたのですが、何度試してもセッションを引き継いでくれません。 それもそのはず、ドコモ端末はcookieが使えませんので、URLにセッションIDを埋めこんで引き継いでいく必要があります。 上記のような設定では、mod_rewriteがセッションIDの引数をカットしてしまうのです。   というわけで、ケータイのセッションに対応するための設定は以下のようになります。 <IfModule mod_rewrite.c> RewriteEngine On RewriteRule ^([0-9A-Za-z~_\-\.]+)\.html$ /viewer.php?p=$1 [QSA,L] </IfModule> [QSA,L]の部分の、QSAフラグがポイントとなります。 リファレンスによると、QSAフラグは次のように説明されています。 このフラグは、置換文字列の中でマッチしたものを書き換えるのではなく、 そこにクエリー文字列部分を追加するように、書き換えエンジンに強制します。書き換えルールを通してクエリー文字列に何かデータを追加したい場合にこのフラグを使います。 ちょっとわかりづらい説明ですが、要はアクセスされたURLについていたクエリー文字列を、そのまま引き継ぐためのフラグです。 これをつけることによって、セッションIDを失うことなくプログラムに渡すことができます。 次のような書き方でも、同じように動くようです。 viewer.php?p=$1&%{QUERY_STRING} [L]   なお、ケータイのセッションに関する詳しい説明は、こちらをご覧ください。 → PHPでケータイからセッションを使う場合の設定方法   関連: ケータイキャリア毎に振り分けを行うには(mod_rewrite編) PHPでケータイからセッションを使う場合の設定方法 Read more..