regra mod_rewrite para aplicar a codificação percentual canônica

Temos um aplicativo PHP com um esquema de URL dinâmico que requer que os caracteres sejam codificados em porcentagem, mesmo "caracteres não reservados"como parênteses ou afóstrofos que na verdade não precisam ser codificados. Os URLs que o aplicativo considera codificados da maneira" errada "são canonizados e depois redirecionados para a codificação" correta ".

Porém, o Google e outros agentes de usuário podem canonizar de maneira diferente a codificação / decodificação percentual, ou seja, quando o Googlebot solicita a página, solicita o URL "errado" e, quando recebe um redirecionamento para o URL "certo", o Googlebot se recusa a seguir o redirecionamento e se recusará a indexar a página.

Sim, isso é um bug do nosso lado. As especificações HTTP requerem que os servidores tratem os caracteres não reservados com porcentagem e não com porcentagem de codificação idêntica. Mas a correção do problema no código do aplicativo não é direta no momento, então eu esperava evitar uma alteração no código usando uma regra de reescrita do Apache, que garantiria que os URLs fossem codificados "adequadamente" do ponto de vista do aplicativo , o que significa que apopstrophes, parênteses etc. são todos codificados em porcentagem e que os espaços são codificados como+ e não%20.

Aqui está um exemplo, onde eu quero reescrever o primeiro e terminar com o segundo formulário:

www.splunkbase.com/apps/All/4.x/Add-On/app:OPSEC+LEA+for+Check+Point+(Linux)www.splunkbase.com/apps/All/4.x/Add-On/app:OPSEC+LEA+for+Check+Point+%28Linux%29

Aqui está outro:

www.splunkbase.com/apps/All/4.x/app:Benford's+Law+Fraud+Detection+Add-onwww.splunkbase.com/apps/All/4.x/app:Benford%27s+Law+Fraud+Detection+Add-on

Aqui está outro:

www.splunkbase.com/apps/All/4.x/app:Benford%27s%20Law%20Fraud%20Detection%20Add-onwww.splunkbase.com/apps/All/4.x/app:Benford%27s+Law+Fraud+Detection+Add-on

Se o aplicativo vir apenas a segunda forma desses URLs, ele não enviará nenhum redirecionamento e o Google poderá indexar a página.

Sou novato com regras de reescrita e ficou claro na minha leitura dodocumentação de reescrita mod esse mod_rewrite faz alguma codificação / decodificação automática que pode ajudar ou prejudicar o que eu quero fazer, embora não tenha certeza.

Algum conselho para reescrever regras para lidar com os casos acima? Eu estou bem com uma regra para cada caractere especial, já que não há muitos, mas uma única regra (se possível) seria ideal.

questionAnswers(2)

yourAnswerToTheQuestion