Eu tenho um site usando o sistema CMS baseado em PHP.
Portanto, cada página é gerada dinamicamente, assim:
http://www.shuling.net.cn/index.php?_m=mod_product&_a=view&p_id=87
Agora eu quero redirecionar esta página específica para outra página, ou seja:
Então eu escrevo o arquivo .htaccess da seguinte forma:
redirect 301 /index.php?_m=mod_product&_a=view&p_id=87 https://www.datanumen.com/sql-recovery/
Mas depois de carregar o .htaccess para o diretório raiz do site, isso não funciona.
Eu testo novamente escrevendo outra regra, assim:
redirect 301 /sql/ https://www.datanumen.com/sql-recovery/
Então esta regra funcionará perfeitamente.
Por quê?
obrigada
Querystring não faz parte da correspondência na diretiva Redirect, para redirecionar strings de consulta, você precisa usar mod-rewrite da seguinte forma:
Opção 1
opção 2
Usamos um ponto de interrogação vazio ? no final do URL de destino para descartar as strings de consulta antigas, caso contrário, essas strings de consulta serão anexadas ao URL de destino por padrão.
Altere o R para R=301 se quiser tornar o redirecionamento permanente.
[Testado no apache2 e 2.4]