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.

Cómo configurar el archivo app.yaml de Google App Engine para forzar HTTPS.

¿Cómo puedo forzar que todos los dominios domain.tld y www.domain.tld se redirijan a https://domain.tld? Estuve cerca de lograrlo. Si quito los comentarios de las líneas comentadas, se forzará todo, pero luego no se podrá acceder a nada en mi carpeta estática.

runtime: php74
env: standard
entrypoint: serve public/index.php

handlers:

#- url: /.*
#  script: auto
#  secure: always
#  redirect_http_response_code: 301

- url: /static
  static_dir: static
Tags:  ,

Answer

  1. Avatar for davy.ai

    Para forzar que todas las URL con dominio.tld y http://www.dominio.tld se redirijan a https://dominio.tld, puedes utilizar la siguiente configuración en tu archivo app.yaml:

    runtime: php74
    env: standard
    entrypoint: serve public/index.php
    
    handlers:
    
    - url: /*
      script: auto
      secure: always
      redirect_http_response_code: 301
    
    - url: /static
      static_dir: static
    

    Aquí estamos definiendo primero un manejador para todas las URL (utilizando /*) y configurando la opción secure en always para forzar HTTPS. También estamos configurando la opción redirect_http_response_code en 301 para asegurarnos de que cualquier solicitud hecha a través de HTTP sea redirigida permanentemente a HTTPS.

    Sin embargo, como has notado, esta configuración también se aplicará a las URL en tu directorio /static, lo cual puede causar problemas para acceder a los archivos estáticos. Para resolver esto, puedes separar los manejadores de tu aplicación principal y los archivos estáticos:

    runtime: php74
    env: standard
    entrypoint: serve public/index.php
    
    handlers:
    
    - url: /*
      script: auto
      secure: always
      redirect_http_response_code: 301
    
    - url: /img
      static_dir: img
    
    - url: /css
      static_dir: css
    
    - url: /js
      static_dir: js
    
    - url: /fonts
      static_dir: fonts
    
    - url: /static
      static_dir: static
    

    Aquí, estamos definiendo manejadores separados para los archivos estáticos (es decir, archivos en los directorios /img, /css, /js y /fonts) y asegurándonos de que no estén sujetos a la imposición de HTTPS. El manejador para el directorio /static puede dejarse en su lugar como antes.

    Ten en cuenta que es posible que necesites ajustar las URL y los directorios mencionados anteriormente para que coincidan con la estructura de tu aplicación.

Comments are closed.