Regra de Regravação para modificar a estrutura da URL

1

Estou tentando criar uma regra de reconfiguração mod para alterar corretamente uma estrutura de URL existente que se parece com isso:

Antigo: somesite.com/scripts/data/database.cgi?ArticleID=29154&report=SingleArticle&file=Data

Em algo parecido com isto:

Novo: somesite.com/oldarticle/id29154.htm

Tudo que eu preciso basicamente é pegar o ArticleID e inseri-lo na nova estrutura de url. O que eu criei não está funcionando, mas sei que estou perto:

RewriteEngine On
RewriteRule ^(.*)/database\.cgi\?ArticleID=([0-9]+)&report=SingleArticle&file=Data$ /oldarticle/id$1.htm [R=301,NC,L] # Permanent Move

Eu tentei muitas variações dos itens acima, e provavelmente estou perdendo algo na string inicial que precisa ser reescrita. Qualquer ajuda / sugestão seria muito apreciada!

    
por perdrix 02.10.2013 / 19:45

1 resposta

1

A string de consulta não faz parte da string que você está correspondendo no RewriteRule . Em vez disso, você precisará de algo assim:

RewriteCond %{QUERY_STRING} report=SingleArticle [NC]
RewriteCond %{QUERY_STRING} file=Data [NC]
RewriteCond %{QUERY_STRING} ArticleID=([0-9]+) [NC]
RewriteRule ^.*/database\.cgi /oldarticle/id%1.htm? [R=301,NC,L]

Eu divido as condições para que a ordem da string de consulta não seja codificada, mas não tenho certeza se isso é importante para você.

    
por 02.10.2013 / 19:59