increase google engine docs developers app google-app-engine https url-redirection

google app engine - google - ¿Cómo redireccionar permanentemente las URL de http:// `y` www.` a `https://`?



google cloud (5)

(Para Nodo al menos,) en su app.yaml, agregue lo siguiente:

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

Referencia: https://cloud.google.com/appengine/docs/standard/nodejs/config/appref

Tengo un proyecto de Google App Engine. En este proyecto, he configurado un dominio personalizado y un certificado SSL. Por lo tanto, puedo usar https://www.mysite.xxx , http://www.mysite.xxx y solo el dominio desnudo mysite.xxx .

¿Es posible redirigir permanentemente los dos últimos para usar siempre el dominio https:// seguro utilizando la consola de desarrolladores o simplemente tengo que redirigir el código?



Debe hacerse en su aplicación. Por favor, consulte esta publicación https://.com/a/54289378/5293578

He probado el siguiente código y funcionó para mí (debe poner esto antes del controlador de errores y solicitud por defecto):

/**==== File: server.js =======**/ /** Express configuration **/ // HTTPS Redirection if (process.env.NODE_ENV === ''production'') { app.use (function (req, res, next) { var schema = (req.headers[''x-forwarded-proto''] || '''').toLowerCase(); if (schema === ''https'') { next(); } else { res.redirect(''https://'' + req.headers.host + req.url); } }); } /** ... more configuration **/ // Default request handler app.use(function(req, res, next) { // ... your code }); // Default error handler app.use(function(err, req, res, next) { // ... your code });


En aras de la exhaustividad. La forma de Java es establecer la garantía de transporte como confidencial de esta manera.

<security-constraint> <web-resource-collection> <web-resource-name>profile</web-resource-name> <url-pattern>/profile/*</url-pattern> </web-resource-collection> <user-data-constraint> <transport-guarantee>CONFIDENTIAL</transport-guarantee> </user-data-constraint> </security-constraint>

También puede encontrar esto aquí en la documentación .


Por si acaso, no es posible incluir controladores seguros en app.yaml en App Engine Flexible, no hay soporte para ellos:

La configuración segura bajo los controladores ahora está en desuso para el entorno flexible de App Engine. Si necesita redireccionamiento SSL, puede actualizar el código de su aplicación y usar el encabezado Proto X-Forwarded para redirigir el tráfico http. (Referencia: https://cloud.google.com/appengine/docs/flexible/java/upgrading#appyaml_changes )

La referencia es de Java, pero parece ser la misma para Node. Intenté incluir manejadores y no funcionó.

Como puede ver, una posible solución sería "usar el encabezado Proto X-Reenviado para redirigir el tráfico http". No he intentado esto porque me moveré a App Engine Standard, pero alguien lo ha hecho y se explica here .