redirecionamento htaccess para o parâmetro posicional para o URL base

1

Se o URL contiver um parâmetro especial (o URL contém Email no parâmetro), redirecione para o URL base da página sem nenhum parâmetro.

Por exemplo:

http://example.com/accounts/daily/ybk/[email protected]

para

http://example.com/accounts/daily/ybk/
    
por adminz 17.10.2016 / 19:27

2 respostas

3

Para corresponder à string de consulta, você precisará usar uma diretiva RewriteCond (mod_rewrite) e corresponder à variável QUERY_STRING server. Por exemplo, no seu arquivo root .htaccess , tente o seguinte:

RewriteEngine On
RewriteCond %{QUERY_STRING} Email=
RewriteRule (.*) /$1? [R=301,L]

Para todos os URLs que contêm Email= em qualquer lugar da string de consulta, 301 redirecionam para o mesmo URL menos a string de consulta.

O ? no final da substituição RewriteRule remove a sequência de consulta do URL redirecionado. Como alternativa, você pode usar o sinalizador QSD no Apache 2.4 +.

Se você já testou com 301 errôneos, limpe o cache do seu navegador.

UPDATE: Para o URL específico indicado (incluindo Email= no início da string de consulta):

RewriteEngine On
RewriteCond %{QUERY_STRING} ^Email=
RewriteRule ^(accounts/daily/ybk/)$ /$1? [R=301,L]
    
por 17.10.2016 / 20:00
0

O módulo mod_rewrite deve ser capaz de ajudá-lo. Você escreve as condições e suas regras de reescrita no arquivo .htaccess.

Referência: Usando as regras de reescrita do .htaccess

    
por 17.10.2016 / 19:55