为什么地址包含&全部打印为&?

时间:2011-04-28 07:08:47

标签: php apache2

我刚刚完成了从旧服务器到新服务器的网站迁移。新服务器有PHP Version 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数据也没有改变。我将所有东西从旧服务器移动到新服务器。我需要将新服务器中的哪些设置更改为正确打印&amp; ?

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

对于当前的服务器,我使用的是Apache / 2.2.14(Ubuntu 10.04)和PHP php.ini设置都是默认设置,是的我正在使用重写模块...

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

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

2 个答案:

答案 0 :(得分:2)

URI应包含&符号作为实体编码值。这种方式完全正确。

请参阅Special Characters in URI attribute values

答案 1 :(得分:0)

看看你的php.ini arg_separator.output 并相应地改变它,它可能导致问题