« 2013年2月 | トップページ | 2013年5月 »

2013/04/16

海外のサーバに移転して困ったこと(2): 日本語のファイル名のファイルが表示されない



海外のサーバ(Linux)に移転した際に、困ったことの二つ目。(無茶なことをやっているのは分かっていますが、)日本語のファイル名を持つファイルをアップロードすると、そのページのURLにアクセスできなくなっていた。

今まで、「あ.html」の場合、「%82%A0.html」(つまりShift_JISでのエンコード)にアクセスすれば表示されていたのですが、海外のサーバに移転すると、うまく表示されません。

「%E3%81%82.html」(UTF-8での「あ」のエンコード)にアクセスしても表示されません。実は、FTPソフトの設定が悪かったことが分かりました。私は、NextFTP4をずっと使っているのですが、こういう設定があるのを今の今まで気づきませんでした。お恥ずかしい。

ホストの一覧から「編集」を選びます。


「高度な設定」タブで、「ホストファイル名」の文字コードを「UTF-8」に設定します。


設定変更後、「あ.html」をサーバに転送したら、「%E3%81%82.html」にアクセスすると表示されました。FirefoxやIE9の場合は、「あ.html」でも表示されました(こちらはブラウザの初期設定のまま変えていないからかもしれません)。

日本語のファイル名などやるべきでないことは分かっているのですが、やる人がいる以上、知っておいて損はしないTipsかなと思います。

IT系のアルバイトは「ITワーク」へ

| | コメント (0) | トラックバック (0)

2013/04/15

サーバを移転したらトラブルに。謎のPOSTエラー(403 Forbidden)

あるドメインのサイトを故あって海外のレンタルサーバに移転しました。すると、いくつかトラブルがありました。その時の顛末をまとめてみます。

ある内部用のページで、謎のエラー:
Forbidden
You don't have permission to access /test/a.php on this server.

Additionally, a 404 Not Found error was encountered while trying to use an ErrorDocument to handle the request

のようなエラーが出ます。当然、a.phpは存在し、引数なしで(GETで)アクセスすると、エラーになりません。

かなり、はまりました。結果的に分かったことは、
  • texxtareaのフィールド名がdownloadだったのですが、これをmessageなど別のフィールド名にするとエラーにはならない。
  • textareaのフィールド名をdownloadのままにしておいても、textarea内のプリセットのメッセージ:
    <<(中略)>>(改行)
    の部分を削除すると、エラーにならない。
ということが分かりました。

結論として、POST/GETとも download=<<a>>%13%10
がパラメータとして渡されているとエラーになることが分かりました。「a」の部分は何でも良いです。

単にお礼メール(テンプレート)のメッセージの装飾用に「<<」と「>>」で挟んで見出しにしていたのですが、これが駄目だったようです。

はっきりとは分からないのですが、WAF(Web Application Firewall)の影響のようです。WEBサイト改ざん対策です。フィールド名を変えるとうまくいくことから、パラメータの怪しさチェックで何らかのポイント制が敷かれているのかもしれません。

WAFについてGoogleで検索するとロリポップのものばかり出ますが、私が今回借りたサーバは海外のサーバであってロリポップではありませんが、結構、導入するレンタルサーバが増えているのかもしれません。

| | コメント (0) | トラックバック (0)

« 2013年2月 | トップページ | 2013年5月 »