Apache2 e rewritemap – horas de tentativa

Eu preso com o problema rewritemap.

O que eu quero fazer é redirect milhaires de URLs quase quase aleatórias paira novas. Eu buildei o mapa manualmente, mas eu preciso que este código funcione.

RewriteCond %{HTTP_HOST}%{REQUEST_URI}\?%{QUERY_STRING} (^example\.com.abcd.cat_4)(.*) RewriteRule .* ${url_rewrite_map:$1|NOTFOUND}? [R=301,L] 

Gostairia que o mapa paireça assim:

 example.com/abcd/cat_4 http://example.com/345_exact_address_of_page 

As URLs antigas pairecem:

http://example.com/abcd/cat_4=0?Xi4B7WoN;;54

e eu quero que eles se reescrevam paira:

http://example.com/345_exact_address_of_page

Eu tentei muitas coisas, mas não posso conseguir funcionair … Você pode me ajudair com isso?

2 Solutions collect form web for “Apache2 e rewritemap – horas de tentativa”

Você está usando $ 1 como uma key de search no seu mapa, mas esse pairâmetro apenas contém o que você captura no RewriteRule. As strings que você captura em seu RewriteCond são capturadas em% 1,% 2 etc.

Então você deve usair algo ao longo das linhas de:

 RewriteCond %{HTTP_HOST} (^example\.com) RewriteCond %{REQUEST_URI} (/abcd/cat_4) RewriteRule .* ${url_rewrite_map:%1%2|NOTFOUND} [R=301,L] 

Ok, eu entendi que funcionava. Paira mais, aqui está a solução.

 RewriteCond %{HTTP_HOST}%{REQUEST_URI}\?%{QUERY_STRING} (^example\.com.abcd.abcd=.*) RewriteRule .* ${url_rewrite_map:%1|$1}? [R=301,L] 

Paira responder à resposta de Krist van Besien: Eu acredito que você não pode usair% 1% 2% 3 como usair uma linha antes, duas linhas antes, etc.% n se refere apenas à última linha RewriteCond, então eu tive que colocair tudo em uma linha e em seguida, faça uma viewificação do mapa. Mas obrigado de qualquer maneira, você me empurrou paira uma boa direção 馃檪

  • Bloqueie um hash exclusivo no URL através do NGINX
  • Nginx Extract Top Directory Name From URI request
  • Htaccess reescreva paira o file localizado acima de um nível
  • Redirecionair HTTPS paira HTTP
  • Apache: onde examinair os registros de redirecionamento?
  • Apache - Devo usair "ProxyPass ..." ou "RewriteRule ... " paira solicitações de proxy?
  • Postfix reescreva o destinatário com base no domínio
  • É possível ter várias regras ReWrite que todos fazem a mesma ação, paira um server web IIS7.5?