Apache: regra de reescrita com dados variáveis

0

Eu preciso fazer esse redirecionamento para o meu servidor:

www.hostname.com/path1/path2/123456789 a www.hostname.com/search?q=123456789

Eu inseri esta regra no arquivo htaccess:

RewriteRule ^/path1/path2/([0-9]+)$ /search?q=$1 [L,R=301]

mas não funciona (o número é uma variável).

    
por Steph 12.03.2015 / 16:41

1 resposta

2

Em um arquivo .htaccess, você não deve ter uma barra inicial: "o prefixo por diretório (que sempre é o mesmo para um diretório específico) é automaticamente removido para a correspondência de padrões RewriteRule e automaticamente adicionado após qualquer parente (não começando com uma barra ou nome de protocolo) substituição ".

Eu não sei em qual diretório seu arquivo .htaccess mora, mas você deve remover o prefixo desse diretório:

RewriteRule ^path1/path2/([0-9]+)$ /search?q=$1 [L,R=301]

… ou…

RewriteRule ^path2/([0-9]+)$ /search?q=$1 [L,R=301]

… ou…

RewriteRule ^([0-9]+)$ /search?q=$1 [L,R=301]
    
por 12.03.2015 / 18:00