Знаки плюса заменяются на% 252520 - PullRequest
0 голосов
/ 01 сентября 2010

Когда я нажимаю на мои индексированные страницы в Google, знаки плюс в строке запроса заменяются (кодируются?) На% 252520.

Кто-нибудь знает почему?

Пример:

lovelakedistrict.com/result/?q=Private%252520car%252520park&page=2

должно быть

lovelakedistrict.com/result/?q=Private+car+park&page=2

Я слышал, что это результат перенаправления моих URL в htaccess?

Ответы [ 2 ]

3 голосов
/ 01 сентября 2010

Если в запросе URI используется пробел, его необходимо заменить на %20 ( процентное кодирование ) или + ( application / x-www-форма-кодированная тип содержимого для форм).В вашем случае данные, по-видимому, кодируются три раза (% кодируется %25).

Попробуйте эти правила, чтобы заменить такие последовательности на +:

RewriteCond %{QUERY_STRING} (.*?)%(25)+20(.*?%(25)+20.*)
RewriteRule ^ %{REQUEST_URI}?%1+%3 [N]
RewriteCond %{QUERY_STRING} (.*?)%(25)+20(.*)
RewriteRule ^ %{REQUEST_URI}?%1+%3 [L,R=301]
2 голосов
/ 01 сентября 2010

На самом деле %25 - это % символ, %20 - это пробел. Похоже, ваш URI был закодирован три раза

http://www.lovelakedistrict.com/result/?q=Private car park&page=2 =>
http://www.lovelakedistrict.com/result/?q=Private%20car%20park&page=2 =>
http://www.lovelakedistrict.com/result/?q=Private%2520car%2520park&page=2 =>
http://www.lovelakedistrict.com/result/?q=Private%252520car%252520park&page=2

Как видите, % кодируется как %25.
Поэтому в первый раз вы получаете %20 для пробела, затем вы получаете %25 для % из %20, за которым следует 20, затем снова та же кодировка.

Вероятно, что-то не так в процессе, прежде чем ссылка будет предоставлена ​​Google.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...