2010-09-03 81 views
0

我需要替換我網址中的&符號的編碼值,以便搜索查詢成功。我正在努力從這個post的解決方案中複製類似的方法,查詢字符串如下所示。&符號在url中編碼爲%2526

lovelakedistrict.com/result/?q=Brookfield+Bed+%2526+Breakfast

我希望它是像這樣

lovelakedistrict.com/result/?q=Brookfield+Bed+ & +早餐

原因是與%2526的網址在谷歌索引,顯然是破碎的。

+3

它實際上應該是http://www.lovelakedistrict.com/result/?q=Brookfield+Bed+%26+Breakfast所以q'的'值爲'布魯克菲爾德牀和Breakfast',喜歡這裏:HTTP:/ /www.google.com/search?q=Brookfield+Bed+%26+Breakfast – aularon 2010-09-03 21:42:31

回答

1
RewriteCond %{QUERY_STRING} (.*?)%(25)+26(.*?%(25)+26.*) 
RewriteRule^%{REQUEST_URI}?%1+%3 [N] 
RewriteCond %{QUERY_STRING} (.*?)%(25)+26(.*) 
RewriteRule^%{REQUEST_URI}?%1+%3 [L,R=301] 

(從您發佈更改20 S中的鏈接複製到26 S)

+0

我試過這個,但它連續造成3個加號,但我認爲將所有的&更改爲「and」更爲常規。所以現在鏈接指向lovelakedistrict.com/result/?q=Brookfield+Bed+and+Breakfast。謝謝你的幫助 – AJFMEDIA 2010-09-06 07:23:37

2

正如aularon說,它應該是Bed+%26+Breakfast,爲&是一個查詢字符串參數分隔符。 (你會發現,如果你進入第二個鏈接你實際上搜索「布魯克菲爾德牀」。)

<form id="form" action="/result" method="get"> 

結果就像一個正確的查詢:

http://www.lovelakedistrict.com/result?q=Brookfield+Bed+%26+Breakfast 

然而,由於/result是Web服務器將該查詢重定向到/result/,並由於某種原因同時更改查詢字符串,將其雙重編碼爲​​%2526

我不知道爲什麼這樣做,這是不正常的Apache行爲,有你有一些狡猾的重寫規則,也許你應該能夠指向正確的URL的形式,以避免它 - 但是:

<form id="form" action="/result/" method="get">