Como faço para usar mod_rewrite para alterar o caminho eo nome do arquivo de uma URL
-
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!
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