es.davy.ai

Preguntas y respuestas de programación confiables

¿Tienes una pregunta?

Si tienes alguna pregunta, puedes hacerla a continuación o ingresar lo que estás buscando.

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!

Tags:  , , , ,

Answer

  1. Avatar for 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:

    RewriteEngine On
    RewriteCond %{QUERY_STRING} u=(.+)
    RewriteRule ^ https://%1/? [R=301,L]
    

    Esta regla hace lo siguiente:

    • Habilita el motor mod_rewrite
    • Verifica si el parámetro u existe en la cadena de consulta utilizando la directiva RewriteCond y captura su valor utilizando la expresión regular (.+)
    • Redirige la solicitud a https://%1/` (donde%1es el valor del parámetrou) y elimina la cadena de consulta utilizando la directivaRewriteRulecon los indicadoresR=301(para indicar una redirección permanente) yL` (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.

Comments are closed.