**[[質問箱4/561]] [#r5ecbad2] #author("2018-03-11T20:57:42+09:00;2010-03-02T15:45:24+09:00","","") **[[質問箱/4561]] [#r5ecbad2] |RIGHT:70|LEFT:410|c |~カテゴリ|| |~サマリ|タイトルにスペースを含む場合、Yahoo検索から存在しないページにユーザーが来訪する件| |~バージョン|1.4.7| |~投稿者|[[TOBY]]| |~状態|質問| |~投稿日|&new{2010-02-28 (日) 07:45:29};| ***質問 [#l48f31d4] 質問させて頂きます。 以前より"Hoge Mage"というタイトルのページがすでにあるのに "Hoge+Mage"というページを新規で作成を乱発されるという、 スパム書き込みのような、そうでもないような書き込みが相次ぎ困っており、 何とかこちらで出来る対処はないものか?と思い書き込んだ次第です。 [[spam_filter.php:http://miasa.info/index.php?%C8%FE%CB%E3Wiki%A4%C7%A5%B7%A5%B9%A5%C6%A5%E0%C5%AA%A4%CB%BD%A4%C0%B5%A4%B7%A4%C6%A4%A4%A4%EB%C5%C0#ofa18e88]]によりCAPTCHAの導入をしていることもあり、 またアクセス解析を見るに手動で書き込んでいるようです。 アクセス解析など原因を調査したところ、Yahoo検索からの来訪者のようで、 Yahoo検索からは、Pukiwiki上のタイトルにスペースを含むページに飛ぶと、 スペースの変わりに"+"に置き換えたURLに飛ぶようでした。 具体的には、元のURLに%20を含むと%2Bに置換したURLに飛んでくるようです。 例:"Hoge Mage"というもとのページではなく、Yahoo検索では"Hoge+Mage"というページに飛ぶ (Googleではこのようなことはありません) こちらのwiki以外でも同様のことが起こっているはずです。 対処法としては、 -"Hoge+Mage"ページを作って"Hoge Mage"へ誘導する -"Hoge+Mage"ページを作って#includeで"Hoge Mage"を読み込む -%2Bを含むアクセス(Hoge+Mage)を%20(Hoge Mage)へ飛ばす などがあると思いますが、 前者2つはページがかなり多すぎるため、難しいと感じています。 最後の方法を取るものとして、どのような指針を立てたものでしょうか? 念のため、Yahoo検索には報告済みです。 環境は Pukiwiki 1.4.7 EUC版です。 ***回答 [#rbe6cd3b] - [[dev:BugTrack2/294]] のコメントにあるindex.php?cmd=read&page=t+e%20s%20t とindex.php?t+e%20s%20t の処理の違いが原因かな?前者はPHP の開始時に(前処理をしてから)$_GET['page'] にページ名が格納されますが、後者はlib/init.php でエミュレートしているようなものですから。&br;[[plus:質問箱/250]]のような方法か、 // 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; } とするか、が回避法ですかね。 -- &new{2010-02-28 (日) 19:03:34}; - ありがとうございます。うーんなるほど、 [[plus:質問箱/250]] (なんと2007年の話題…)の話題そのものの内容ですね。回避法のパッチ試してみます。 -- [[TOBY]] &new{2010-03-02 (火) 11:06:28}; - あ、あれ、本当ですね。index.php?cmd=read&page=Hoge+Mageではちゃんと"Hoge Mage"のページに飛びますね。 -- [[TOBY]] &new{2010-03-02 (火) 11:15:21}; #comment