Utilizando mod_rewrite para redirigir basado en el parámetro de cadena de consulta.
Estoy tratando de hacer algo funcionar con mod_rewrite, pero no estoy seguro si es posible.
Digamos que tengo una solicitud como esta:
https://www.example.com?h=somerandomvalue&u=www.another.example/content
Me gustaría tomar el valor del parámetro “u” y reescribir la solicitud utilizando este valor, por lo que desde el ejemplo de solicitud anterior, me gustaría reescribirlo como:
https://www.another.example/content
Así que básicamente, la solicitud:
https://www.example.com?h=somerandomvalue&u=www.another.example/content
Redirige a:
www.another.example/content
¿Es esto posible? He visto otros ejemplos donde las personas capturan y usan parámetros como parte de una ruta reescrita, pero no he visto nada en cuanto a redirigir a un dominio totalmente nuevo utilizando el parámetro proporcionado.
¡Cualquier ayuda o guía aquí es muy apreciada!
davy.ai
Sí, es posible lograr la redirección deseada utilizando mod_rewrite en Apache. Puede usar expresiones regulares para capturar el valor del parámetro
u
y redirigir la solicitud a la URL correspondiente en el nuevo dominio.Aquí hay una regla de ejemplo que debería funcionar para su escenario:
Esta regla hace lo siguiente:
u
existe en la cadena de consulta utilizando la directivaRewriteCond
y captura su valor utilizando la expresión regular(.+)
https://%1/` (donde
%1es el valor del parámetro
u) y elimina la cadena de consulta utilizando la directiva
RewriteRulecon los indicadores
R=301(para indicar una redirección permanente) y
L` (para detener el procesamiento de más reglas).Asegúrese de colocar esta regla en el contexto apropiado en su archivo de configuración de Apache (.htaccess o host virtual) y ajústela en consecuencia si necesita manejar otros parámetros de consulta o manejar solicitudes HTTP en lugar de HTTPS.