2011-04-28 138 views
0

我刚刚完成了从旧服务器到新服务器的网站迁移。新的服务器有PHP版本5.3.2-1ubuntu4.5和apache2等为什么包含&的地址全部打印为&

旧网站工作得很好,新服务器中的新网站工作正常,除了所有包含&的网址打印为&

例如,下面的行是源代码的片段,它应该实际上打印css文件。但是,由于&已更改为&,因此css文件不会被调用,并且网站在没有cs文件的情况下工作。

<link rel="stylesheet" href="script.php?l=329ef537b34ea622036c008096902d53&amp;t=.css" type="text/css" charset="UTF-8" media="all"> 

这应该是

<link rel="stylesheet" href="script.php?l=329ef537b34ea622036c008096902d53&t=.css" type="text/css" charset="UTF-8" media="all"> 

而且,下面的例子

<a href="blog/?mid=lacta&amp;act=display">PROFILE</a></li> 

应该

<a href="blog/?mid=lacta&act=display">PROFILE</a></li> 

你认为是造成这种情况的原因? 文件没有改变,mysql数据也没有改变。我将一切从旧服务器移动到新服务器。我必须更改新服务器的设置才能正确打印&?

-----------更新

对于目前的服务器,我使用的Apache/2.2.14(Ubuntu的10.04)和PHP php.ini中设置的所有默认和Yes我使用重写模块...

旧服务器是使用Apache/1.3.36和5.1.4 PHP ..

域名,.htaccess文件,所有其他文件都是相同的。

+1

请告诉我们产生HTML的PHP​​代码。 – Charles 2011-04-28 07:38:25

+0

你在使用任何'mod_rewrite'或其他的apache模块吗?另外,旧服务器运行的操作系统和Web服务器版本是什么?什么是你的php.ini中的'arg_separator.input'值,你的PHP脚本如何访问查询参数? – Gordon 2011-04-28 07:43:37

回答

2

URIs应包含&符号作为实体编码值。这样完全正确。

Special Characters in URI attribute values

+0

嘿,我的旧网站正在打印。你认为这可能是一个与字符编码有关的问题吗? – user482594 2011-04-28 07:27:52

+1

@user,[字符编码](http://en.wikipedia.org/wiki/Character_encoding)与手头的问题无关。 – Charles 2011-04-28 07:39:06

+0

@user @Charles说的。无论是什么导致您的脚本发生故障,它都不是HTML中的编码符号。不知道有关您的设置的更多细节,我只能盲目猜测(我不会这么做),所以请更新您的问题并提供更多详细信息。 – Gordon 2011-04-28 08:32:34

0

在你的php.ini看看这个 arg_separator.output 并相应地改变它,它可能会造成问题