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()を確認しましたが、ステージングと文字セットの設定は同じです。これは奇妙なものです。