像/ images / john这样的Imagepath可以工作但不能在另一台服务器上工作

时间:2012-02-09 18:35:16

标签: php image apache url path

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

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

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

Apache或PHP配置是否对该行为负责?我只是想知道原因。

1 个答案:

答案 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覆盖以避免此类投诉。)