当サイトのアクセスをログをみると検索エンジンから遷移してきた場合にキーワードと検索ページがアンマッチになっている場合があることを気づいた。
検索エンジンというのはmetaのキーワード以外にページ全体のワードも拾ってくる。サイドバーの最近の記事だとかトラックバックもキーワードになってしまう。
ページを開いて、本文が探していた情報と違う場合は、そのページ以外を探すということは滅多にしないことだ。
そこで、検索エンジンから遷移してきた場合に検索キーワードを抽出し、AjaxSearchを起動し、検索結果をポップアップさせることにした。以下がその画面

右のサイドバーの水色の部分が検索結果、左のサイドバーのが閉じる。
仕掛けは簡単。
検索キーワードはjavascriptのdocument.referrer(参照元)で拾ってきて、?以下のキーワードを抽出し、デコードする。キーワードをAjaxSearchのformに貼り付け、submitさせる。
当初、MODxのスニペットでキーワードの抽出を実現しようと思ったのだが、スニペットに例外がおきるとhtml本体作成まで影響がでるので、javascriptの方法を採用した。
それに「150.70.84.xxx」のIPアドレスの不明な訪問者URLフィルタ野郎。
こいつは依頼元のクライアントのGETパケットそのままIPアドレスだけ変えて、そのままアクセスする。
クライアント側のブラウザで手順をふんで動的に作成されたGET用のパラメータを無造作に送付してくる。
それでサーバ処理をおかしくしている。
この訪問者がいつおかしなパラメータを送付してくるか分からないため、余計なサーバ側の処理は中止だ。
時々、ルータがこける。この訪問者が原因か要調査だ。
最後に、キーワードには全角空白が含まれているのでカットが必要である。