自前でGoooooooooooogleするクラスを作って使っている。忙しくてメンテナンスが面倒になってきたので、Pagerクラスを導入した。ところが、mod_rewriteをパス名に含めるSEOやってると、これが化ける。
http://bookmacro.com/プロフェッショナル〜仕事の流儀/user_review/?page=1
のような、URLを作っていると、PAGERでリンクが化ける。
IE7でURLエンコードを表示しない設定にしているとき*1ちゃんと日本語で表示される。便利だ。SEO的にも効果が高いみたいだ。*2
これ、Pagerクラスでやると、文字コード処理してくれるんだ。ただし、URLのパス部分が正しくエンコードされてくれない。というか、2重にエンコードされてフランス語に化けてしまう。ああああああめんどくせー。何もパスまでエンコード処理しなくて良いんだが。。。。
というわけで、Pager/Common.php修正してみた・・・・htmlentitiesをコメントアウト
return sprintf('<a href="%s"%s%s%s title="%s">%s</a>', @757 - //htmlentities($this->_url . $href), @758 + $this->_url . $href, empty($this->_classString) ? '' : ' '.$this->_classString, empty($this->_attributes) ? '' : ' '.$this->_attributes, empty($this->_accesskey) ? '' : ' accesskey="'.$this->_linkData[$this->_urlVar].'"', $altText, $linkText );
これで動いた。こういうのPEARに報告したいんだけど。どうすればいいのかなぁ。。。。
日本語環境だけなのか。UTF-8をURLに含める場合全般なのか。その辺がよく分からない。なおかつPEARに報告する方法が分からない。以前申請したアカウントは貰えなかった。。。
でも、PEARソースの直接編集は嫌すぎる。またWrapperをまた書くのか・・・面倒だ。CVSにコミットしたいなぁ。。。