从一个服务器移动到另一个服务器后,一些西里尔文文件名被破坏

从一个服务器移动到另一个服务器后,一些西里尔文文件名被破坏

我将网站从一台服务器移至另一台服务器,并遇到了西里尔文文件名问题。 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- 有效。

看起来完全一样。复制并粘贴上面的网址进行检查!

如果我使用工作文件名(从 FTP 或 SSH 复制)的 URL 并从键盘逐个字母替换西里尔文文件名,则一切正常(200 OK),直到我将й(从 FTP 复制)更改为й- 从键盘输入/从 WordPress 复制。

这绝对让我大吃一惊!外观相同的字母在一种情况下有效,但在另一种情况下无效。为什么而й不是另一个西里尔字母,例如шor д?从键盘替换这些字母(从 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%...

但我为什么以及如何影响它呢?

相关内容