2012-02-09 7 views
0

私はあるサーバーから別のサーバーにCMSを転送しました。新しいサーバー上に画像が見つかりませんでした。私はHTMLコードを見て、見た/images/johnのような画像パスは動作しますが、別のサーバではありません

<img src="/images/john" alt="john" /> 

画像には*.jpgのような拡張子がありませんでした。しかし、なぜそれは古いサーバーで動作しましたか?同じコード、同じデータベース、同じhtaccessファイルです。 Internet Explorerでも画像を見つけることができます。

ApacheまたはPHPの設定はその動作に関係していますか?私は理由を知りたいだけです。

+1

おそらくmimeの書き換えや設定がありません –

+0

htaccessに書き換えがないことを意味していますか? Mimeでは、MIMEタイプを意味しますか? 'img src'だけなので、MIMEタイプはありません。 – testing

+0

はい、おそらく '/ images/john'というURLが'/images/$ 1.jpg'に変換されたり、 '/ images/john.jpg'にリダイレクトされている可能性があります。実際には、データベースサーバー上のデータを取得する要求を処理するスクリプトにリダイレクトされます –

答えて

1

マルチビューは古いサーバーでは有効になっていますが、新しいサーバーでは有効ではありませんか? MultiViewsは、拡張機能を含まないファイルを照会できるApache機能です(images/johnはファイルをimages/john.jpgに戻すことがあります)。これは、あなたが同じページの複数のバージョンを持つことができるように(私が知っている限り)、ユーザーのロケールによって究極のバージョンが選択されることを意図しています。スペインのindexをリクエストするブラウザではindex.es.phpが、日本ではindex.jp.phpが表示されることがあります。私は自分自身でこの機能を使用したことがないので、ロケール依存のページを提供するのが正しいかどうかは分かりませんが、indexに対応してMultiViewsにindex.phpという副作用があることはわかります。

MultiViewsはOptions指示文によって制御され、Allには含まれていない唯一のオプションです。したがって、MultiViewsを含むすべてのオプションを取得するには、が.htaccessファイルに必要です。これは、あなたのディレクトリに対するApacheの設定でAllow Overrideディレクティブに応じてMultiViewsを有効にすることができます。あなたが共有ホスティングをしているなら、何もすることはできませんが、文句を言うことはありません(これらの苦情を避けるためにすべての.htaccessの上書きを許可する傾向があります)。

関連する問題