¿Cómo uso mod_rewrite para cambiar la ruta y el nombre de archivo de una URL?
-
01-07-2019 - |
Pregunta
Quiero tomar la URL:http://www.midominio.com/signup-12345
Y de hecho dales:http://www.midominio.com/signup/?aff=12345
NO tengo historial con mod_rewrite, ¡AYUDA!
Solución
Algo que me resultó relativamente difícil de descubrir fue cómo hacer lo contrario de lo que estás haciendo, es decir, debes averiguar el valor de parte de la cadena de consulta.
Así por ejemplo:
Si quisieras reescribir la URL:http://www.example.com/signup-viejo-guion.áspid?af=12345
a:http://www.example.com/signup-nuevo-guion.PHP?AfId=12345
podrías usar:
RewriteCond %{query_string}& ^aff=((.+&)|&)$
RewriteRule ^/signup-old-script.asp$ /signup-new-script.php?affID=%2 [L,R]
Observe la % inicie sesión en la regla de reescritura en lugar de la $ firmar.
Tuve que hacer esto para poder admitir mapas flash antiguos en un sitio nuevo que tenía enlaces a archivos ".cfm" con un ID en la cadena de consulta.
Otros consejos
Prueba esto :
RewriteRule ^/signup-(\d+)/$ /signup/?aff=$1 [I]
Tan lejos como se,
El indicador hace que se ignore RewriteCond. - para "Ignorar caso" - desde IsapiRewrite
versión 2