我把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
覆盖以避免此类投诉(。