0

URLでアポストロフィが許可されている古いサイトがあります。これは理想的ではありませんが、セットアップ方法であり、新しいサーバーに移動するまでは正常に機能していました。ページタイトルは基本的にURLの「スラッグ」であり、データベースの検索に使用されます。ただし、私のライブサーバーでは、タイトルにアポストロフィ(URLにアポストロフィとして表示される)が含まれている場合、アポストロフィを処理してDBルックアップを実行しようとすると、アポストロフィが疑問符になります。

私はステージングサーバーも持っています-ステージングサーバーとライブの両方がcentOSを実行し、phpは私が見る限り両方で同じように構成されています。このアポストロフィの問題は、ステージングでは発生しませんが、ライブでは発生します。理由は何でしょうか?文字エンコードの問題はありますか?どうもありがとう

編集:いくつかの詳細...

URLの例:/ about/club's-opening-timesこれはブラウザのURLバーに正常に表示されています。

 echo $_SERVER["REQUEST_URI"]; // outputs /about/club's-opening-times
 $page_name = end(Router::$segments); 
 echo $page_name; //club?s-opening-times

URLをエンコードするときにも同じことが起こります-%27は?ご覧のとおり、私はフレームワーク(kohana 2.3)ライブラリを使用してURLセグメントを取得しているため、Router::segmentsはアポストロフィを疑問符に置き換えています。ライブでphpinfo()を確認しましたが、ステージングと文字セットの設定は同じです。これは奇妙なものです。

4

3 に答える 3

0

<meta charset="UTF-8">コードを見ないとわかりにくいですが、タイトルタグの上/下に文字セットを含めていないようです。

于 2013-01-14T15:29:37.717 に答える
0

あなたのセグメントは Kohana ルートでは有効ではないようです。Kohana ルーター クラスを見てみましょう: https://github.com/kohana/core/blob/3.3/master/classes/Kohana/Route.php

于 2013-01-14T17:13:05.310 に答える