1アカウントで複数のダイアリーを開設すると、http://d.hatena.ne.jp/はてなID+好きな文字列/記事の日付 というURLになります。
このURLをスマホで開くと、スマホ向けのURLとして自動的に
http://d.hatena.ne.jp/はてなID+好きな文字列/touch/記事の日付
が表示されます。
そこから、ページの最下部に移動すると「PC版のページを表示」というリンクがあります。
そこを押すと
http://d.hatena.ne.jp/はてなID%20好きな文字列/記事の日付
というURLに遷移してしまい、
「ご指定のページが見つかりません。
URLをもう一度お確かめ下さい。」
というエラーになります。
要は、スマホ向け・PC向けのページ切り替え時に、URL内の「+」が正しく処理されていません。
このバグは、ずいぶん昔からあるようですが、対処法はありますでしょうか。
bookmarklet作って見ました。
http://let.hatelabo.jp/TransFreeBSD/let/hJmetZbbj5ge
スマホでの登録は下記参考に。
http://android-smart.com/2011/06/android%E3%81%A7%E3%82%82%E3%83%96%E3%83%83%E3%82%AF%E3%83%9E%E3%83%BC%E3%82%AF%E3%83%AC%E3%83%83%E3%83%88%E3%82%92%E4%BD%BF%E3%81%88%E3%82%8B%E3%82%88%E3%81%86%E3%81%AB%E3%81%97%E3%82%88%E3%81%86.html
http://android-smart.com/tool/bookmarklets.html
bookmarklet作って見ました。
http://let.hatelabo.jp/TransFreeBSD/let/hJmetZbbj5ge
スマホでの登録は下記参考に。
http://android-smart.com/2011/06/android%E3%81%A7%E3%82%82%E3%83%96%E3%83%83%E3%82%AF%E3%83%9E%E3%83%BC%E3%82%AF%E3%83%AC%E3%83%83%E3%83%88%E3%82%92%E4%BD%BF%E3%81%88%E3%82%8B%E3%82%88%E3%81%86%E3%81%AB%E3%81%97%E3%82%88%E3%81%86.html
http://android-smart.com/tool/bookmarklets.html
このバグの具体的な再現手順を書いておきました。
かんたんに再現できます。
はてなダイアリーのバグの具体的な再現手順。画面キャプチャ付き (PC版とスマホ版の切り替え時に,URLのエスケープが不適切なため発生するエラー)
http://d.hatena.ne.jp/language_and_engineering/20140623/HatenaDi...
コメント(3件)
おそらくは"+"と記述すべきところを間違えていて、
ミスに気づいていない状況なんでしょう。
はてなにバグ報告して修正してもらうしかないと思いますよ。
URLのパス部分では+が特別の意味をもって使われないのでパーセントエンコーディングせずそのまま書けるけど、
クエリ部分ではapplication/x-www-from-urlencodedでスペースの意味で使われるのでパーセントエンコーディングしないといけない。
「はてなID+好きな文字列」は通常パス部分なのでそのままで良いけど、スマホ版からPC版に飛ぶときスマホが再度PC版からスマホ版に飛ばされない処理をする所で、URLをクエリ部分にパラメタとしていれてるけど、そこへのリンクがエスケープ処理してなくてapplication/x-www-from-urlencodedでの+と解釈されてスペースに変換されてる。
だから隣のログイン/ログアウトのリンクのようにエスケープしてもらう、という以外の対処方法は思いつかない。
ちなみに張り忘れた別件だけど参考リンク
http://koseki.hatenablog.com/entry/20120212/uricolon
「HTTPのクエリパラメータにコロン(:)を書くのは不正なのか。」