■Apache

■スポンサーサイト

上記の広告は1ヶ月以上更新のないブログに表示されています。
新しい記事を書く事で広告が消せます。

■ファイルをダウンロードする際に圧縮してくれるモジュール

Apache Module mod_deflate
スポンサーサイト

■CGIをapacheの実行ユーザー以外で実行する

suEXECを使う。
suEXEC Support

mod_phpでPHPを動かしている場合は無効のため、CGIモードに変更しなければならない。
How to set up suexec to work with virtual hosts and PHP

■URLを拡張子無しで表示させる

http://www.webmasterworld.com/apache/3961636.htm

■Apacheでホストしているウェブサイトで日本語URLを使用可能にする

[Apache-Users 2844] Apache 日本語URL使用方法について
■WebDAVの日本語対策でmod_encodingを導入すると、他のソフトの日本語環境やPHPやCGIで文字化けが発生する。

■Shift-JISでのGETの処理

に大いにつまづく。

日本語を混ぜたURL(単にサーバー上にアップする
フォルダやファイル名を日本語にしただけ)
にPCからアクセスすると普通に表示されるのだが
携帯からだと「ページが見つかりません。」とエラーになってしまう。

ログを見ると、PCからのGETされているファイル名(これはテストです.html)が

%E3%81%93%E3%82%8C%E3%81%AF%E3%83%86%E3%82%B9%E3%83%88%E3%81%A7%E3%81%99.html

となっているのに対して、携帯からのものは

%82%B1%82%EA%82%CD%83%65%83%58%83%67%82%C5%82%B7.html

となっていることに気づく。

ULRデコーダーを使って会席してみると、
PCからのものはUTF-8、
携帯からのものはShift-JISとなっていることがわかる。

そこでブラウザの文字コードについて調べてみると、
現在ほとんどのPCブラウザは、
URLをUTF-8で処理するのに対し、
携帯ブラウザはまだShift-JISが多いとのこと。
(ってこんなことは技術やってる人には常識?
文字コード全然わからん(泣))

さて、ここで本題のじゃあどうやったら携帯からのアクセスを
正常に表示させることができるか、というところ。

携帯からのGETを受ける前に文字コードを
SJISからUTFに変換して返すときにまたSJISに変えて・・・
なんてことを考える(できるかどうか知らんが)。

もっと簡単にできないのかと思い、根本的な問題を考えてみる。
Windows上でファイル名を作成したということは、ファイル名は
もちろんSJISでエンコードされているわけだから、そのまま
エンコードを変えずにファイルをアップしたらいいんじゃない?
と考える。

そこでFTPをテキストではなくバイナリで実行。

成功。

これで携帯からのアクセスでもOKとなった。
でも相変わらずPCからのアクセスもちゃんと表示されるのはなぜ?


※サーバー環境はLinux、OSの言語はLANG=en_US.UTF-8。
環境によっては上記方法でうまくいかない場合もあり。

追記:
OSの言語設定を日本語にしたらいいだけかも。

プロフィール

systemadmin

Author:systemadmin
files2cloud.com

最近のコメント

ブロとも申請フォーム

ブログ内検索

上記広告は1ヶ月以上更新のないブログに表示されています。新しい記事を書くことで広告を消せます。