当Apache的mod_negotiation进入时,PHP的虚拟()的奇怪行为

首先:如果单独执行,PHP的virtual()以及Apache的mod_negotiation工作正常。 但是当virtual()引用需要协商的文件(例如Multi-Lang)时,我遇到了麻烦。 用一个简单的例子说明最简单:

/texts/我放置两个文件: example.html (内容: <P>This is English</P> )和example.html.de<P>Dies ist Deutsch</P> )。 现在我们来看一个PHP脚本的例子:

 <HTML><HEAD><TITLE>Example</TITLE></HEAD><BODY> <? virtual("/texts/example.html"); ?> </BODY></HTML> 

这工作正常,输出如预期:

 <HTML><HEAD><TITLE>Example</TITLE></HEAD><BODY> <P>This is English</P> </BODY></HTML> 

但是现在我将virtual()调用改为virtual("/texts/example"); ,我的首选语言设置为德语。 虽然谈判select了正确的目标,但是输出却是混乱的:

 <P>Dies ist Deutsch</P> <HTML><HEAD><TITLE>Example</TITLE></HEAD><BODY> </BODY></HTML> 

同样:在上面的代码中唯一改变的是virtual()调用的参数。 这些文件在我的其他机器上运行了大约10年,只是在我的新机器上开始了这个疯狂的东西:

PHP版本:5.3.10(在工作机器上:5.2.4)
Apache2版本:2.2.22(在工作机器上:2.2.8)

任何想法在这里可能会出错?