カテゴリ | |
---|---|
サマリ | タイトルにスペースを含む場合、Yahoo検索から存在しないページにユーザーが来訪する件 |
バージョン | 1.4.7 |
投稿者 | TOBY |
状態 | 質問 |
投稿日 | 2010-02-28 (日) 07:45:29 |
質問させて頂きます。
以前より"Hoge Mage"というタイトルのページがすでにあるのに "Hoge+Mage"というページを新規で作成を乱発されるという、 スパム書き込みのような、そうでもないような書き込みが相次ぎ困っており、 何とかこちらで出来る対処はないものか?と思い書き込んだ次第です。
spam_filter.phpによりCAPTCHAの導入をしていることもあり、 またアクセス解析を見るに手動で書き込んでいるようです。
アクセス解析など原因を調査したところ、Yahoo検索からの来訪者のようで、 Yahoo検索からは、Pukiwiki上のタイトルにスペースを含むページに飛ぶと、 スペースの変わりに"+"に置き換えたURLに飛ぶようでした。 具体的には、元のURLに%20を含むと%2Bに置換したURLに飛んでくるようです。
例:"Hoge Mage"というもとのページではなく、Yahoo検索では"Hoge+Mage"というページに飛ぶ (Googleではこのようなことはありません)
こちらのwiki以外でも同様のことが起こっているはずです。
対処法としては、
などがあると思いますが、
前者2つはページがかなり多すぎるため、難しいと感じています。 最後の方法を取るものとして、どのような指針を立てたものでしょうか?
念のため、Yahoo検索には報告済みです。
環境は Pukiwiki 1.4.7 EUC版です。
// cmdもpluginも指定されていない場合は、QUERY_STRINGをページ名かInterWikiNameであるとみなす if (! isset($vars['cmd']) && ! isset($vars['plugin'])) { $get['cmd'] = $post['cmd'] = $vars['cmd'] = 'read'; if ($arg == '') $arg = $defaultpage; - $arg = rawurldecode($arg); + $arg = urldecode($arg); $arg = strip_bracket($arg); $arg = input_filter($arg); $get['page'] = $post['page'] = $vars['page'] = $arg; }とするか、が回避法ですかね。 -- 2010-02-28 (日) 19:03:34