我们即将把我们公司的网站(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 的内部服务器上,我猜测这一步不知何故弄乱了文件,但这只是猜测。