我需要替换我网址中的&符号的编码值,以便搜索查询成功。我正在努力从这个post的解决方案中复制类似的方法,查询字符串如下所示。&符号在url中编码为%2526
lovelakedistrict.com/result/?q=Brookfield+Bed+%2526+Breakfast
我希望它是像这样
lovelakedistrict.com/result/?q=Brookfield+Bed+ & +早餐
原因是与%2526的网址在谷歌索引,显然是破碎的。
我需要替换我网址中的&符号的编码值,以便搜索查询成功。我正在努力从这个post的解决方案中复制类似的方法,查询字符串如下所示。&符号在url中编码为%2526
lovelakedistrict.com/result/?q=Brookfield+Bed+%2526+Breakfast
我希望它是像这样
lovelakedistrict.com/result/?q=Brookfield+Bed+ & +早餐
原因是与%2526的网址在谷歌索引,显然是破碎的。
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)
我试过这个,但它连续造成3个加号,但我认为将所有的&更改为“and”更为常规。所以现在链接指向lovelakedistrict.com/result/?q=Brookfield+Bed+and+Breakfast。谢谢你的帮助 – AJFMEDIA 2010-09-06 07:23:37
正如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">
它实际上应该是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