我将CMS从一台服务器转移到另一台服务器。在新服务器上找不到图像。我查看了HTML代码并看到了
<img src="/images/john" alt="john" />
图片没有*.jpg
这样的扩展名。但为什么它在旧服务器上运行?它是相同的代码,相同的数据库和相同的htaccess文件。甚至Internet Explorer也可以找到图片。
Apache或PHP配置是否对该行为负责?我只是想知道原因。
答案 0 :(得分:1)
是否有可能在旧服务器上启用MultiViews而在新服务器上启用? MultiViews是一项Apache功能,可让您在不包含扩展名的情况下查询文件(因此images/john
可能会返回images/john.jpg
处的文件)。我希望(据我所知)允许您拥有同一页面的多个版本,并根据用户的区域设置选择最终版本;从西班牙请求index
的浏览器可能会获得index.es.php
,而在日本可能会获得index.jp.php
。我自己从来没有使用过这个功能,所以我不知道这是否正确用于提供依赖于语言环境的页面,但我知道MultiViews具有服务index.php
以响应{{1}的副作用}}
请注意,MultiViews由index
指令控制,它是唯一不包含在Options
中的选项。因此,要获得包括MultiView在内的所有选项,您需要All
文件中的Options All MultiViews
。这可能会也可能不会启用MultiViews,具体取决于您的目录的Apache配置中的.htaccess
指令;如果你在共享主机上,除了抱怨之外没什么可做的(尽管他们倾向于允许所有Allow Override
覆盖以避免此类投诉。)