带变音符号的 URL 编码 URI 在其他服务器上不起作用

带变音符号的 URL 编码 URI 在其他服务器上不起作用

我们即将把我们公司的网站(Drupal 7)从旧服务器 A 迁移到新服务器 B。像往常一样,我们导出/导入数据库并通过 ftp 复制了所有文件。

由于我们的公司位于德国,因此我们有许多图像的文件名包含德语变音符号。CMS 正确地对它们的 URI 进行了 URL 编码,因此现有文件可以über uns.jpg用这样的标记表示:

<img src="http://<path to file>/%C3%BCber%20uns.jpg" />

这个过程在服务器 A 和 B 上运行,服务器 B 以 进行响应404 Not Found,其路径与服务器 A 返回的图像的路径完全相同。

两个服务器都使用标准 »Lamp« 设置,其中服务器 B 的软件是最新的(Apache 2.4、PHP 7.0),而服务器 A 的软件比较旧(约 5 年)。

我非常感谢您的帮助,并提前致谢!

答案1

这真的让我抓狂!我仔细检查了每一个可能的语言环境设置,发现它们都被设置为 UTF-8。

最奇怪的是:将 URL 复制/粘贴到浏览器的地址栏会导致 404。但是输入完全相同的地址而不从源粘贴则返回图像。在 Sublime Text 中,我在一个文件中同时拥有“两个”URL(粘贴的和输入的),标记第一个并点击Ctrl-D而不选择另一个,因此 URL 并不相同,我猜想字节顺序有些问题,但这只是猜测。

因此,我仍然不清楚原因,但我可以告诉你我是如何修复它的:我启动了 FileZilla,将文件目录下载到我的本地计算机并使用它来上传和覆盖。就是这样。

我的同事最初下载并上传了所有文件,并在上传之前将它们存储在基于 Mac 的内部服务器上,我猜测这一步不知何故弄乱了文件,但这只是猜测。

相关内容