以前の記事も読みましたが、たぶんですがauの問題でもなく、サーバー側のリダイレクトによる問題が高いと思われます。
通常レンタルサーバーなどでは”~”を含むURLを表示する際に、なんらかの形でデータをリダイレクトしているはずです。
ただau端末だけの問題のようなので、方法としてはauの端末だけ分岐を用意して、強制的に /%7Eeryou/blog/%7Eeryou/blog/page/2 を /%7Eeryou/blog/page/2 に再リダイレクトさせる等が考えられますが、できればレンタルサーバー側に確認して”~”の無い形式で公開できないかを探る方が早いし確実ではないかと思われます。
自分は”~”を含むアドレスでの公開が、見た目もカッコ悪いし、入力も面倒なので、アドレスがそうなるサーバーは使わないようにしているので、事象が再現できません。
完全な回答にならず申し訳ありませんが、ご参考までにしていただければと思います。
コメントありがとうございます。
はじめに、環境のことで記述が足りないと思ったことを追記します。
利用中のWebサーバは自宅PCにて稼動、DDNSにて外に公開しているのモノです。
なので、Webサーバの設定などは自分で変更するとかは可能です。
あと、Wordpressのパーマネントリンクはyyyy/mm/postid形式です。
で、ご指摘のとおり、au端末限定(というかauのWeb proxy)だとは思っています。ただ、au端末のためだけにWebサーバのリダイレクト設定を変えるとか、そもそもuserdirのURLを変えるというのは気が進みません。回避策であることは承知していますが、理由は以下のとおり。
私は個人的なものを公開する場合userdirの下に配置するようにしています。そしてuserdirは”~”配下のほうが好きです。見た目がいいか悪いかや好きか嫌いかは個人の好みの問題ですね。特定の入力デバイスでは入力が面倒なのはわかります。
次に、”~”を含むURLを用いることがwordpressおよびktai styleの仕様とか利用条件であるなら納得しますが、他のアンカー(ブログトップページにある最近の記事やカテゴリー、タグなど)は正常に操作できます。
これら正常なものについては、”%7E”を”~”に置き換えなおすなりしてブログのroot(本件では”/~eryou/blog/”)あたりとマッチさせ、重複しないアンカーを作成しているからだと思います。
次のページのアンカーを作成するところだけこういった処理が含まれていないのではないかと思っていますが、残念なことに、wordpress + ktai styleのsourceをみていてもよくわからなかったため質問をしています。
#コメントをいただいたことはうれしかったのですが、こんな物言いですみません。
ということで、sourceのこのあたりをみればいいとか、いやいや、やっぱり仕様です、とかのコメントをお待ちしております。
よろしくお願いいたします。
かなり前の記事に返信します。
当方でも同様の現象が起こったため以前調べたところ、/%7Eユーザ名/でアクセスした場合にそれが/~ユーザ名/と置き換わってブラウザ側でアクセスされても、php側の$_SERVER[‘REQUEST_URI’]のデータとしては/%7Eのままで残っており、この場合にWordPress側が404を発行するということになるようです。携帯に限らず、通常のブラウザでのアクセスでも同様です。
本来ならWordPress本体で修正したほうが適切なのかもしれませんが、とりあえずの急場しのぎで/%7Eを/~に置換する処理(これで動作します)を強引にindex.phpファイルへ入れて対応していたところ、WordPressの更新時にファイルの上書きでこの記述が削除されたのかいつの間にか動作しなくなっていましたのでプラグイン化してみました。(ApacheのRewriteRuleでの対応も試しましたがうまく設定できませんでした)。
<?php
/*
Plugin Name: REQUEST_URI Fix
Description: URIの先頭が/~でなく/%7Eでアクセスした際に正しくアクセスできなくなるのを$_SERVER['REQUEST_URI']で/~と置換することで解決します。
Version: 0.0.1
*/
function requrl_fix() {
global $_SERVER;
$_SERVER["REQUEST_URI"]=preg_replace('#^/%7e#i', '/~', $_SERVER["REQUEST_URI"]);
}
add_action('init', 'requrl_fix');
?>
どの程度正しいのか不明ですが、これでアクセスはできています。