
Mudei meu site de um servidor para outro e encontrei um problema com nomes de arquivos em cirílico. Alguns URLs cirílicos no wordpress estão bem e alguns estão quebrados. Costumava estar OK no servidor anterior.
É assim que parece: na biblioteca de imagens do wordpress, vejo uma imagem quebrada, com URL: /wp-content/uploads/2013/11/олимпийские-новогодние-шары.jpg
(versão codificada em 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
:)
Eu navego para este URL e vejo o erro 404.
Então eu vou para o FTP, copio o nome do arquivo de lá ( олимпийские-новогодние-шары.jpg
) e navego até URL/wp-content/uploads/2013/11/олимпийские-новогодние-шары.jpg
(Versão codificada em 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
:)
Agora funciona!
Outra vez:
олимпийские-новогодние-шары.jpg
- quebradoолимпийские-новогодние-шары.jpg
- funciona.
Parece absolutamente o mesmo. Copie e cole o URL acima para verificar!
Se eu pegar um URL com nome de arquivo funcional (copiado de FTP ou SSH) e substituir o nome de arquivo cirílico do teclado, letra por letra, tudo ficará bem (200 OK) até que eu mude й
(copiado do FTP) para й
- digitado no teclado/copiado do wordpress.
Isso absolutamente me surpreende! A mesma letra funciona em um caso e não no outro. E por que й
e não outra letra cirílica, como ш
ou д
? A substituição dessas letras (no nome do arquivo copiado do FTP) do teclado não produz o erro 404.
Se olharmos mais de perto, as versões codificadas em URL não são exatamente as mesmas:
%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%...
Mas por que e como posso influenciar isso?