.htaccessによる文字化け対策
Tag:[]
TypeKey認証やコメント投稿の後で文字化けが発生するという質問を最近何件か頂いています。TypeKeyの文字化けについてはHTTPリダイレクトを伴っており、ページ直前のHTTPレスポンスで返却されたcharsetを見てしまうのが文字化けの要因と思われます(発生するサイトとしないサイトの違いは不明です)。下記のサイトに解説があります。
ただしコメント投稿後の文字化けは原因不明(リダイレクトではないという認識)です。
上記のサイトにも少し書かれていますが、リダイレクトによる文字化け解消について .htaccess を利用する方法がありましたのでご紹介します。
1..htaccess ファイル作成
まず .htaccess というファイルをテキストエディタ等で新たに作成し(既に存在する場合はその中)、そこに下記のいずれかの青字部分を記述します(とりあえず上の方をお試しください)。記述例は文字コードが UTF-8 でファイルの拡張子が .html の場合です。
明示的に文字セットを指定していない応答に追加されるデフォルトの文字セット
AddDefaultCharset UTF-8
ファイル名の拡張子を指定されたコンテントタイプにマップ
AddType "text/html; charset=UTF-8" .html
上の設定はHTTPヘッダで charset が設定されていない時に文字コードを指定するものです。
下の設定は拡張子に対応するコンテントタイプ(MIMEタイプ)の設定が目的です。phpファイルも対象に含む場合は
AddType "text/html; charset=UTF-8" .html .php
としてください(拡張子の間は半角空白、拡張子のピリオドはなくてもいいようです)。
記述した行の最後は改行してください。文字コードの部分は「EUC-JP」「Shift_JIS」等、使用されている文字コードに適宜修正ください。
技術的な話をすると、上記はいずれも Apache ディレクティブですのでHTTPサーバに Apache が使われていることが前提になります(多分この文章は無視されても大丈夫だと思います…)。
2.ファイル配置
.htaccess を配置(アップロード)します。このファイルの内容は、ファイルを配置したディレクトリおよびそのサブディレクトリ全てに適用されますので(サイトのトップディレクトリにあると思われる)index.htmlが配置されているディレクトリに配置します。
以上です。なお上記の対策は動作を確認できてないこともあり、完全な不具合解消を保証するものではありませんので予めご了承ください。また本設定がコメント投稿後のページ表示にも適用されればいいのですが(CGIからの出力は一旦HTTPアクセスが行われると思っているので適用されそう?)、そうでなければカスタマイズされたページのどこかに文字化けの要因が潜んでいると考えられます(感覚的にはHTMLタグの文法エラー等ですが改善性については未知です)ので、申し訳ございませんが「デフォルトのテンプレートから少しずつカスタマイズして動作をチェックしてみてください」という原始的なアドバイスしかできません。併せてご了承願います。
↑一応動作確認できているサイトあります。なお文字化けの原因は「続きを読む」を折りたたむスクリプトにあるようでした。ご利用中の方にはご迷惑おかけして大変申し訳ございません。とり急ぎお詫びまで。
- MovableTypeプラグインの独自CGIをNginxに対応させる方法
- Movable Type 5で「Got an error: Can't use 'defined(%hash)' (Maybe you should just omit the defined()?)」というエラーになる場合の対処
- 旧バージョンのMTでPerl5.26(Perl5.24以降)に対応する方法
- MT6.2のファイルアップロードで「Undefined subroutine &POSIX::strftime」になる問題の対処
- Movable Typeのファイルアップロードで「アップロードしたファイルは大きすぎます。」というエラーになる場合の対処
- Movable Typeのパスワード変更で「URLが不正です。」というエラーなる件についての対処
- Movable Typeで「Cannot find column 'blogs' for class 'MT::Blog'」となる場合の対処
- Movable TypeでMTPageNextタグが効かなくなる不具合について
- Movable Typeの復元で「Request-URI Too Large」になるときの対処
- サーバ故障と「Connection error: Too many connections」エラーおよびMySQLテーブル破損について
- Movable Typeでエラー発生箇所を特定する方法
- IE9でMovable Typeを利用する方法
- MTIfタグにtagモディファイアを利用する場合の注意事項
- Movable Type 5のブログの設定で「Can't call method "label" on unblessed reference」が発生する問題について
- Movable Type 5.03へのアップグレードで再構築時に「Script Error」が発生する件について(つづき)
≫ TypeKey認証時の文字化け対策 from Internet Zone::Movable TypeでBlog生活
TypeKeyでサイン・インしたときや、逆にサイン・アウトしたときに、文字化けする場合がありました。全部じゃなくて、同じブログのなかでも、文字化けするエントリー... [続きを読む]
≫ Blogカスタマイズメモ from Daily note
文字化け現象に(・ε・?だったのが解決の模様。
今回ももちろんお世話になりました... [続きを読む]
≫ TypeKey認証時の文字化け対策 from Magic White
小粋空間 個別アーカイブに「続きを読む」を導入のスプリクト入れていて、TypeK... [続きを読む]
≫ 文字化け対策に.htaccessファイルを使う from 喜怒哀楽
うちのMT。 なぜかこのページだけエンコードがUTF-8にもかかわらず、日本語(... [続きを読む]
≫ 文字化け対策をしてみました from リンゴ庵blog
以前から、個別エントリーを表示させると「文字化け」が起こることは存じておりました... [続きを読む]
≫ 文字化け対策 from M*C?B Version?
小粋空間さんの
.htaccessによる文字化け対策をここでも取り入れてみました... [続きを読む]
≫ Movable TypeをUTF-8化したら文字化け発生 from THE SUN ALSO RISES
です。なんだかインポートの仕方が間違っているのかなと思っていましたが、解決策が小... [続きを読む]
≫ WordPressの表示速度を速くする WP-Cache 導入 from 新電波
WordPress のページをキャッシュすることで、表示速度を速くする WP-Cache を導入しました。
表示がおかしくなる等のエラーがありましたら、報... [続きを読む]
丁度先日、ウチのサイトも化けて気になってました
今回のバージョンからの気もするんですが・・
本来、サーバー側で対応するべきっぽいですね
とりあえず、htaccess置いてみます^^
こちらの方法で、うちもトップディレクトリにhtaccessファイルを置いてみましたら、以前の現象はなくなりましたー!
すごいですー!
重ね重ねありがとうございました!
もう・・・度々スミマセン。
もっと動作確認してから書きこみしなきゃ!と思いつつ、うきうきしちゃうとつい・・・。
で、htaccessファイルを置いたまではよかったんですが、トップカテゴリをクリックして出てくるページ、またトップ以下のサブカテゴリーの各ページに
The MTPaginate tag only works within PHP documents!
Make sure that the document extension is .php and that your server supports PHP documents.
というエラーが出てしまいます。
また、ページ分割の部分もうまく動かなくなっちゃいました。
ということで、htaccessファイルは外しちゃいました。
何がなんだか、私には分かりません;
「手を出すな」ということでしょうかね;;;
でも、確かにhtaccessファイルをおくとですね、以前エンコードがうまく選ばれなかったページはブログの文字コードを選んでくれてました。
>Deepsnowさん
こんにちは。
参照ありがとうございます。
たしかにサーバー側で対応してくれればいいですね。
ただレンタルサーバーの場合はユーザの文字コードを予測できないのであえて設定していない?という見方もできそうです。
>ミッチさん
こんにちは。
参照ありがとうございます。
念のため状況を確認させてください。
どの方法を使われましたでしょうか?
また2番目の方法も行われてましたでしょうか?
よろしくお願い致します。
またお時間ください…。
こんばんは。
一番目の「AddDefaultCharset UTF-8」でやってみたところ
コメント後の文字化けがなくなりました。
(ワタシがレンタルしてるロリポはApache1.3××のようです。)
テンプレートをデフォルトにしてやり直すことも考えていたのですが
これで落ち着いてくれると信じて様子をみます。
とても助かりましたぁ。ありがとうございます。
>miaowさん
こんばんは。
いや?、うまくいったみたいで良かったです。
Apacheのバージョンも調べて下さりありがとうございます。
コメント&確認ありがとうございます。
僕は、プログラムはさっぱりダメな文科系ゆえ、いつも参考、じゃなくて活用させていただいております。ダジャレならお役に立てるんですけどね… (^^;)
>GAKUさん
こんばんはー。
いえいえ、ダジャレ仲間増えて嬉しいです。
またのお越しを!
yujiroさん、こんにちは。
私が試した方法ですが・・・
MTをPHP化にしたもので、迷わず
AddType "text/html; charset=UTF-8" .html .php
の方をやってみちゃったんです。
他のは試してません。
やってみた方が・・・・いいですよね。
ちょっと実験してきまーす・・・。
>ミッチさん
こんばんはー。
実験お願いしてすいません。
お待ちしております。
文字化け対策と個別対応続き読むスプリクトいれるとうちの場合、javascriptエラーでます。
MT3.11新規インストール環境だと違う部分あるのかなぁ、、、。
htaccessには、http://lolipop.jp/?mode=manual&state=blog&state2=mt311_2&PHPSESSID=ee698e7b497933e3eecdbe48e0cca2cd
ありますファイル保護やってたんですが、mt.cfgファイル保護しようとしてもエラーでます。
なんでだろ、、。
書き忘れました。
エラー表示は、
ライン45
文字5
エラー デコードするURIは、有効なエンコーダではありません。
htaccessいれてもいれなくてもエラーでる模様、、。
いろいろ原因調べて、Remember Meにあるようです。
なので、Remember Meをデフォルト・テンプレートから持って来たらエラーなくなりました。
htaccessいれても大丈夫です。
いろいろ対策されてるRemember Meの方がいいんだろうけど、、。しばらくは、デフォルトでいきます。
何回もコメントしてすいませんでした。
>miyotanさん
こんばんはー。
とりあえずうまくいったみたいですね。良かったです。
Remember Meですか…了解しました。
私も変更したスクリプトを使っているのですが文字化けしないのは何故?
ますます訳が分からなくなってきましたが検証する価値はありそうですね。
ご連絡ありがとうございました。
すみません、^_^;
2重トラックバックしてしまいました。
お手数ですが削除お願いします。
いつもすみません。m(__)m
>miaowさん
こんばんは。
ご連絡ありがとうございます。
遅くなりましたが先程削除しておきました。
どうぞお気遣いなく。
Remember Meの件は、IE6 SP2だからかも、、。
IEいやーん(汗。
でもそろそろきつねさんに手を出そうと思ってる今日この頃、、。
>みよたんさん
SP2と関係ありですか…。
う?ん…今日は寝ます(逃避モード)。
きつねさんは手ごわい
.htaccessファイルは、一番目の方法でやってみると、うまい具合に今まで不具合のあったページが文字化けしなくなりました。
よかったですー。
ありがとうございました!
>ミッチさん
こんにちはー。
トラックバックありがとうございます。
文字化け対処うまくできたようですね!
これで一安心です。
ここのところ、何人かのかたから やむやむで 個別アーカイブのページを開くと 文字化けしてると言われ、この方法を試してみました。自分が見てる分には 一度も文字化けしたことないのですが・・・不思議ですね。これで文字化けしなくなってくれるといいんですけど。
>さえらさん
こんばんはー。
記事参照ありがとうございます。
文字化けはOSやブラウザ依存なんでしょうかね。
多分この対処で大丈夫かと(自信なし)。
yujiroさん、おはようございます。
昨日は色々とありがとうございました。
文字化け対策として、こちらのエントリーを参考にさせて頂きます。
htaccessは初めての試みなので、緊張もしていますが・・・(^_^)
又、何かありましたらこちらで連絡致します。
>ねーさん
了解いたしました。
ご連絡&記事参照ありがとうございます。
こんにちは。
先程、テキストエディタで.htaccessファイルを作成してみました。
アップロード前に確認したいのですが
記述内容は
AddDefaultCharset UTF-8
AddType "text/html; charset=UTF-8" .html .php
の2行だけで大丈夫ですか?
又、アクセス権は変更する必要がありますか?
>ねーさん
こんばんは。まずは
AddDefaultCharset UTF-8
の1行だけでお試しになってください。
よろしくお願い致します。
こんばんは。
.htaccessを設置してみました。
私のPCからは何の変化も見られませんが
文字化けしている友達の状況が改善されればいいなと思っています。
色々とありがとうございました。
トラックバックを2回打ってしまったので1つは削除して下さい(^^;
お手数かけて申し訳ありません。
>ねーさん
こんにちは。
ご連絡ありがとうございました。
改善されることを願ってます。
トラックバック重複、削除しておきました。
お気遣いなく。
yujiro さん
いつもお世話になります。
今ubicast Bloggerを使おうとしているのですが、アカウントセットアップで”ユーザー情報の取得に失敗しました”と出てしまいます。
mt-xmlrpc.cgiのパスもあっているし、パスワードもAPI用を登録して入れました。mt-xmlrpc.cgiが悪いのか、サーバかMT自体が壊れているのか分かりません。この記事に関連があるのかなと思い、お問い合わせした次第です。
ちなみに私のサーバにはhtaccessがあるのですが、上記の記述はありません。試してみる価値がありますか?何か解決作が分かれば、ご教授いただきますよう宜しくお願いします。
yujiro さん
こんばんは。
せいざんと申します。先ほどの記事への追記なのですが、自分のブログにコメントを書こうとしてTypekeyにサインインしようとするとサインインができません。サイトのオーナーにお問い合わせくださいと出ます。自分がオーナーなのですが、よく分かりません。先ほどの質問と何か関係があるような気がして、再びコメントしました。何か情報があれば宜しくお願いします。
>せいざんさん
こんばんは。
1番目のご質問についてはこの記事とは関連がないと思われます。こちらでも情報はありませんのでお許しください。
2番目のご質問はご自身のサイトでサイン・インされたコメントがあるようですが解決されましたでしょうか?
以上です。
それではよろしくお願い致します。
いつも情報ありがとうございます。ずっと懸案だった問題が解決できました。ありがとうございました。
>kenさん
こんにちは。
ご返事遅くなってすいません。
ご連絡ありがとうございました。
お役に立てたようで良かったです。
ではでは!
こんにちは。
お久しぶりです。先日は、ありがとうございました。
最近、訪問者の方から文字化けの指摘をうけました。
それでこちらの.htaccessファイルを作成して一番上の分で試したところ
文字化けは、解消されて喜んでたんんですが、・・・・
メニューバーの部分にWeBAlbumとかのCGIをリンクしています。
MTと同じサーバーにアップしているためでしょうか?今度は、こちらが文字化けしてしまいました。MTが文字化けしているときは、問題なかったのですがこの.htaccess ファイルの影響なんでしょうが・・・
何か書き換えて解消する方法がありますでしょうか?
またお手数ですが、よろしくお願い申し上げます。
>kankitiさん
こんにちは。
ご質問の件ですが、現在「WeBAlbum」のトップページを拝見しても文字化けはしていないようです。
なお、ディレクトリごとに.htaccessを配置すれば文字化けは解消できると思います(そもそも一番最初の文字化けの原因が不明なのですが)。
それではよろしくお願い致します。
こんばんは。
これも文字化けしてたのでWebAlbumは、違うディレクトリーにCGIを置いて実行しています。やはりこうするしかないのですね。
どうもありがとうございます。
また、お願いします。