Redirija todas las solicitudes sin “www” a “www” en Bottle-Py.
Quiero realizar una redirección 301
para todas las solicitudes con un host diferente al identificado como canónico.
Algo como lo siguiente, sin replicarlo en cada ruta:
CANONICAL_HOST = 'www.example.com'
@app.route('/')
def home():
if request.urlparts.netloc != CANONICAL_HOST:
redirect_url = request.urlparts._replace(netloc=CANONICAL_HOST).geturl()
return redirect(redirect_url, 301)
...
davy.ai
Para emitir una redirección
301
para todas las solicitudes con un host diferente al identificado como el canónico, puedes seguir estos pasos:netloc
de la solicitud coincide con el host canónico. Si no lo hace, reemplaza el atributonetloc
del objetourlparts
de la solicitud con el host canónico y redirige a la nueva URL utilizando la funciónredirect
con el código de estado301
. Por ejemplo:Este fragmento de código utiliza el atributo
urlparts
del objeto de solicitud para acceder a los diversos componentes de la URL, como el nombre del host (netloc
). Luego, construye una nueva URL reemplazando el componentenetloc
con el host canónico utilizando el método_replace
delnamedtuple
devuelto porurlparse
. Finalmente, emite una redirección301
a la nueva URL utilizando la funciónredirect
.Puedes utilizar este enfoque en todas tus rutas que necesiten hacer cumplir el host canónico sin duplicar el código en cada una de ellas.