
ウェブサイトをあるサーバーから別のサーバーに移動したところ、キリル文字のファイル名に問題が発生しました。WordPress のキリル文字の URL には問題ないものの、一部は壊れています。以前のサーバーでは問題ありませんでした。
次のような感じです: WordPress の画像ライブラリに、URL が「/wp-content/uploads/2013/11/олимпийские-новогодние-шары.jpg
(URL エンコードされたバージョン/wp-content/uploads/2013/11/%D0%BE%D0%BB%D0%B8%D0%BC%D0%BF%D0%B8%D0%B9%D1%81%D0%BA%D0%B8%D0%B5-%D0%BD%D0%BE%D0%B2%D0%BE%D0%B3%D0%BE%D0%B4%D0%BD%D0%B8%D0%B5-%D1%88%D0%B0%D1%80%D1%8B.jpg
:)」の壊れた画像があります。
この URL に移動すると 404 エラーが表示されます。
次にFTPに行き、そこからファイル名をコピーし(олимпийские-новогодние-шары.jpg
)、URLに移動します。/wp-content/uploads/2013/11/олимпийские-новогодние-шары.jpg
(URLエンコードバージョン: /wp-content/uploads/2013/11/%D0%BE%D0%BB%D0%B8%D0%BC%D0%BF%D0%B8%D0%B8%CC%86%D1%81%D0%BA%D0%B8%D0%B5-%D0%BD%D0%BE%D0%B2%D0%BE%D0%B3%D0%BE%D0%B4%D0%BD%D0%B8%D0%B5-%D1%88%D0%B0%D1%80%D1%8B.jpg
)
動作するようになりました!
もう一度:
олимпийские-новогодние-шары.jpg
- 壊れたолимпийские-новогодние-шары.jpg
- 動作します。
まったく同じに見えます。上記の URL をコピーして貼り付けて確認してください。
動作するファイル名(FTP または SSH からコピー)を持つ URL を取得し、キーボードからキリル文字のファイル名を 1 文字ずつ置き換えると、й
(FTP からコピー)をй
- キーボードから入力/WordPress からコピーに変更するまでは正常に動作します(200 OK)。
本当に驚きです! 同じように見える文字が、ある場合には機能するのに、別の場合には機能しません。また、や などй
の他のキリル文字では機能しないのはなぜですか? キーボードからこれらの文字 (FTP からコピーしたファイル名内) を置き換えても、404 エラーは発生しません。ш
д
よく見ると、URL エンコードされたバージョンはまったく同じではありません。
%D0%BE%D0%BB%D0%B8%D0%BC%D0%BF%D0%B8%D0%B8%CC%86%...
%D0%BE%D0%BB%D0%B8%D0%BC%D0%BF%D0%B8%D0%B9%D1%81%...
しかし、なぜ、そしてどのようにそれに影響を与えることができるのでしょうか?