Como faço para usar mod_rewrite para alterar o caminho eo nome do arquivo de uma URL

StackOverflow https://stackoverflow.com/questions/105308

  •  01-07-2019
  •  | 
  •  

Pergunta

Eu quero levar a url: http://www.mydomain.com/signup-12345

E, na verdade, dar-lhes: http://www.mydomain.com/signup/?aff=12345

Eu tenho história NO com mod_rewrite, ajuda!

Foi útil?

Solução

Algo que eu achei relativamente difícil de descobrir foi como fazer o contrário do que você está fazendo, em que você precisa descobrir o valor da parte da string de consulta.

Assim, por exemplo:

Se você queria reescrever a Url: http://www.example.com/signup- velho - script. asp ? aff = 12345

para: http://www.example.com/signup- new - script. php ? affID = 12345

você poderia usar:

RewriteCond %{query_string}& ^aff=((.+&)|&)$   
RewriteRule ^/signup-old-script.asp$    /signup-new-script.php?affID=%2 [L,R]

Observe o % sinal na regra de reescrita em vez do $ sinal.

Eu tive que fazer isso para que eu pudesse suporta flash mapas antigos em um novo site que tinham links para arquivos ".cfm" com um ID na cadeia de consulta.

Outras dicas

Tente isto:

RewriteRule ^ / inscrição -? (\ D +) / $ / inscrição / aff = $ 1 [I]

Até eu sei,

flag faz com que o RewriteCond para ser ignorado -. Para "Ignore case" - a partir da versão IsapiRewrite 2

Licenciado em: CC-BY-SA com atribuição
Não afiliado a StackOverflow
scroll top