2012-02-09 44 views
0

我将CMS从一台服务器转移到另一台服务器。在新的服务器上找不到图像。我查看了HTML代码,并看到了Imagepath/images/john可以工作,但在另一台服务器上不可以

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

图片没有扩展名,例如*.jpg。但为什么它在旧服务器上工作?它是相同的代码,相同的数据库和相同的htaccess文件。即使Internet Explorer也能找到图片。

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

+1

可能是缺少重写或配置的MIME – 2012-02-10 08:43:09

+0

你的意思是在htaccess中缺少重写? Mime是指MIME类型?没有MIME类型,因为它只是一个'img src'。 – testing 2012-02-13 18:13:08

+0

是一个丢失的重写可能实际上URL'/ images/john'可能被重写或重定向到'/ images/john.jpg'如果或'/ images/*'到'/ images/$ 1.jpg'或者它可能会实际上被重定向到将处理将检索数据库服务器上的数据的请求的脚本 – 2012-02-13 19:03:44

回答

1

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

请注意,MultiView由Options指令控制,并且它是唯一不包含在All中的此类选项。因此,要获得包括MultiView在内的所有选项,您需要在.htaccess文件中使用Options All MultiViews。根据Apache配置中的Allow Override指令,您的目录可能启用或不启用MultiView;如果你在共享主机上,你可以做什么,但抱怨(尽管他们倾向于允许所有.htaccess覆盖,以避免这种抱怨)。

相关问题