Removendo o ponto de interrogação à direita com o htaccess
Alguém pode me ajudar a entender esse código?
# Remove trailing ?
RewriteCond %{THE_REQUEST} ? HTTP [NC]
RewriteRule .? /%{REQUEST_URI}? [R=301,L]
Basicamente eu tenho um site www.example.com que está gerando um link para www.example.com/index.cfm? Preciso redirecionar para www.example.com para fins de duplicação de SEO. Eu consegui remover o index.cfm mas o? ainda permanece lá (www.example.com/?). A barra final também é removida bem se for o último caractere. Eu encontrei esta regra on-line, mas estou recebendo um alerta "RewriteCond: bad flag delimiters" no apache e ele não faz nada.
Eu também tenho algumas páginas como www.example.com/index.cfm?term=test para pesquisar, então eu só quero me livrar do ponto de interrogação à direita e não quando eu tenho uma consulta anexada a ele.
O erro está no RewriteCond. Preciso de ajuda para entender a condição e por que não funciona, não apenas a resposta a ela.
Apenas no caso aqui é o htaccess inteiro:
RewriteEngine On
Rewritebase /
# remove trailing index.cfm
RewriteRule ^index.cfm(\?)?$ / [R=301,L]
# SEF URLs
SetEnv SEF_REQUEST false
RewriteRule ^[a-z\d\-]+/[a-z]\d+/? /index.cfm/$0 [NC,PT,QSA,E=SEF_REQUEST:true]
RequestHeader add SEF-Request %{SEF_REQUEST}e
RewriteCond %{HTTP:SEF_REQUES} ^true$ [NC]
RewriteRule . - [L]
# Remove trailing ?
RewriteCond %{THE_REQUEST} ? HTTP [NC]
RewriteRule .? ^%{REQUEST_URI}? [R=301,L]
NOTA: Eu pesquisei on-line / stackoverflow antes de postar e não encontrei uma solução para o meu problema.
EDIT: Também notei que meu RewriteRule ^ index.cfm (\?)? $ / [R = 301, L] está removendo o index.cfm mesmo que não seja a última coisa na url resultando em um 404 quando eu tento pesquisar algo (www.example.com/index.cfm?term=test) Se alguém pudesse me corrigir e EXPLICAR isso seria ótimo. Te agradece.
EDIT2: www.example.com/index.cfm?term=test&a=dh&j=dhjsi NÃO deve ser redirecionado. www.example.com/a/b/d/f/h/w/d não deve ser redirecionado. www.example.com/index.cfm? e www.example.com/index.cfm devem ser redirecionados para www.example.com.