我已經看到很多人有這個問題,它似乎是停止Apache處理編碼&符號和URL&符號的唯一方法是使用mod重寫B標誌,RewriteRule ^(。* )$ index.php?path = $ 1 [L,QSA,B]。在漂亮的URL中斷中使用&符號
但是,這在apache的早期版本中不可用,必須安裝,某些託管公司也不支持。
我找到了適合我們的解決方案。我們有/搜索/結果/外賣+食品/ Inverchorachan,+阿蓋爾一個url + & +弼+
這顯然打破了在&的URL給我們/搜索/結果/外賣+食品/ Inverchorachan,+阿蓋爾然後給因爲沒有這樣的頁面,所以出現404錯誤。
url保存在$ _GET ['url']數組中。如果它發現&,它會爲每個&符分割數組。
以下代碼通過遍歷每個片斷的$ _GET數組將這些URL拼湊起來。
我想知道這是否有任何我可能不知道的隱藏問題。
的代碼:
$newurl = "";
foreach($_GET as $key=>$pcs) {
if($newurl=="")
$newurl = $pcs;
else
$newurl .= "& ".rtrim($key,"_");
}
//echo $newurl;exit;
if($newurl!='') $url=$newurl;
我修整從片下劃線例如Apache加入此。不知道爲什麼,但在這方面的任何幫助將是偉大的。
可能已連接,但您應該在網址中轉義&。 – Joe 2013-02-14 10:27:53