2011-04-28 135 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 並相應地改變它,它可能會造成問題