Movable Type の検索でエラーになる問題について
Movable Type で検索を行っていると、下記のようなメッセージが表示されるケースがあります。
これは Movable Type の仕様で、連続した検索実行を抑止しているためです。3.31 の場合、デフォルトの抑止時間は20秒で設定されていますので、検索してから20秒以内に再検索を実行すると上記のメッセージに出会うことになります。3.2 では 60秒に設定されています。
とはいっても、Movable Type に精通されていない方は検索を何回も繰り返すでしょうし、このままではサイト運営者は「検索機能がおかしいですよ」というコメントを頂くことになりかねません。下記の変更を行い、サイトを訪問された方が戸惑わないようにすることを推奨します。
1.連続実行抑止時間を短縮する
1.1 Movable Type 3.3? の場合
mt-config.cgi に
ThrottleSeconds 10
という ThrottleSeconds を追加することで、連続実行抑止時間を変更でき、エラーメッセージが表示される確率を下げることができます。数字の単位は「秒」で、上記の例は10秒(=検索してから10秒以内に再検索されたらエラーにする)を設定しています。
Movable TypeはIPベースのコメント帯域制御の設定を使い、コメントを溢れさせる攻撃(1つのエントリーに多量のコメントを送り付けること)に対処しています。 ThrottleSecondsはサイトの閲覧者がコメントを投稿した後に、再投稿できない時間を秒数で指定します。 たとえば、アリスがある時刻にコメントを投稿したと仮定します。すると彼女は、その時刻からこの設定に指定されている秒数の間、同じIPアドレスから別のコメントを投稿することができなくなります。 あなたのブログに対しコメントを投稿する人が多くなければ、この設定を上げることができます。
ただしこの設定項目はコメントやトラックバックについても適用されますので、値を下げ過ぎると同一投稿者からのコメント重複投稿やスパム攻撃が増加する可能性があります。またサーバにも負荷がかかりますので注意しましょう。
1.2 Movable Type 3.2 の場合
3.31 では設定ファイルで値の変更が可能ですが、3.2 はプログラムを修正する必要があります。
lib/MT/App/Search.pm
をダウンロードし、下記のパッチをあてます。
--- lib/MT/App/Search.pm.bak Thu Sep 22 13:00:26 2005
+++ lib/MT/App/Search.pm Mon Jul 17 18:49:37 2006
@@ -36,7 +36,7 @@
if ($DB) {
my $ip = $app->remote_ip;
if (my $time = $db{$ip}) {
- if ($time > time - 60) { ## Within the last minute.
+ if ($time > time - 10) { ## Within the last minute.
return $app->error($app->translate(
"You are currently performing a search. Please wait until your search is completed."));
}
パッチが利用できない場合は下記の赤色部分 *1 を変更してください。
sub init {
my $app = shift;
:
(略)
:
## Check whether IP address has searched in the last
## minute which is still progressing. If so, block it.
if (eval { require DB_File; 1 }) {
my $file = File::Spec->catfile($cfg->TempDir, 'mt-throttle.db');
my $DB = tie my %db, 'DB_File', $file;
if ($DB) {
my $ip = $app->remote_ip;
if (my $time = $db{$ip}) {
if ($time > time - 60) { ## Within the last minute.
return $app->error($app->translate(
"You are currently performing a search. Please wait until your search is completed."));
}
}
:
(略)
:
元の「60」は60秒のようです。これより少ない値に変更すればエラーに遭遇する確率が下がります。修正案は10秒にしていますが、必要に応じて値は適宜修正してください。
修正が終わったら元のディレクトリにアップロードしてください。
2.エラーメッセージを改善
冒頭のエラーメッセージを変更し、ユーザに対し再検索で待ち時間が必要であることを促します。
メッセージの修正方法は、Movable Type をインストールしたディレクトリから
lib/MT/L10N/ja.pm
をダウンロードし、任意のエディタで開いて下記の赤色部分を修正します。
:
## lib/MT/App/Search.pm
'You are currently performing a search. Please wait until your search is completed.' => '現在検索中です。検索が終わるまでお待ちください。',
:
例えば下記のように修正します。
'You are currently performing a search. Please wait until your search is completed.' => '再検索する時は×秒以上待ってから行ってください。',
修正したら元のディレクトリにアップロードして上書きしてください。1項の修正と併用しても良いでしょう。
*1:色覚障害等で色が識別できない場合は、サイト右上の「Styles」メニューにある Gray Scale をクリックしてください。IEではグレースケール表示され、青色部分が下線表示、赤色部分が二重下線で表示されます。Firefox/Opera ではカラー表示のままですが下線表示に切り替わります。なお設定の都合上、リンクとテキスト表示が判断できなくなりますので予めご容赦ください。
- 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」が発生する件について(つづき)
≫ 検索、検索結果フィードで頻繁にエラーとなる件の解決 from しおそると
検索、検索結果フィードで頻繁に下記エラーとなる件。 「エラーが発生しました: 現... [続きを読む]
≫ 現在検索中です。検索が終わるまでお待ちください。 from ti-web.net blog
Movable Typeで一度検索して、すぐに検索すると 「現在検索中です。検索... [続きを読む]
≫ サイト内検索のエラー from 双数姉妹HPリリースノート
Movable Typeのインストールも一段落したと思っていたのだが、サイト内検... [続きを読む]
≫ Movable Type 3.34 3.35 不具合・カスタマイズメモ from Back Yard Weblog
ページの改装は大体終わったわけだが、そもそもなかなか改装に踏み切れなかった理由... [続きを読む]
≫ 検索でのエラー表示問題 from lotus position
Movable Typeで連続して検索を行った場合、 「現在検索中です。検索が終... [続きを読む]
MT3.31を入れてみたんですが、トップのバナーの部分に写真を入れたいのですが、どうやるんですか?
それから右のサイドバーを左に移すにはどうやったらいいんですか?
初歩的な質問ですいません。^_^;
>わかめさん
こんばんは。
ご質問の件ですが、画像の表示については「タイトルバナーに画像を表示する」をエントリーしましたので、参考になれば幸いです。
またサイドバーの変更方法についても別途エントリーいたしますのでお待ちください。
それではよろしくお願い致します。
こんなに早くエントリーしてもらえるなんて、感謝です?!
サンキューです。☆
>わかめさん
こんばんは。
どういたしまして。
ではでは!