像 /images/john 这样的图像路径有效,但在另一台服务器上不起作用



我把CMS从一台服务器转移到另一台服务器。在新服务器上找不到映像。我查看了 HTML 代码并看到

<img src="/images/john" alt="john" />

图片没有像*.jpg那样的扩展名。但是为什么它在旧服务器上工作?它是相同的代码,相同的数据库和相同的htaccess文件。甚至Internet Explorer也可以找到图片。

Apache 或 PHP 配置是否负责该行为?我只想知道为什么。

是否有可能在旧服务器上启用多视图,但在新服务器上未启用?MultiViews 是一项 Apache 功能,可让您在不包含扩展名的情况下查询文件(因此images/john可能会在 images/john.jpg 处返回文件(。它旨在(据我所知(允许您拥有同一页面的多个版本,并根据用户的语言环境选择最终版本;从西班牙请求index的浏览器可能会index.es.php,而在日本可能会得到index.jp.php。我自己从未使用过此功能,所以我不知道这是否是提供依赖于区域设置的页面的正确用法,但我知道 MultiViews 具有提供index.php以响应index的副作用。

请注意,多视图由 Options 指令控制,并且它是 All 中唯一未包含的此类选项。因此,要获得包括多视图在内的所有选项,您需要在.htaccess文件中Options All MultiViews。这可能会也可能不会启用多视图,具体取决于 Apache 针对您的目录的配置中的Allow Override指令;如果您在共享主机上,除了抱怨之外,您无能为力(尽管他们倾向于允许所有.htaccess覆盖以避免此类投诉(。

最新更新