Una regla de redirección responde a las peticiones de un nombre de la zona cuya ruta empieza por un prefijo con una redirección (301, 302, 307 o 308) a una URL absoluta. La petición nunca llega a tu origen. Una zona puede tener hasta 50 reglas.
Cómo casa una regla
hostes un nombre exacto de la zona (la propia zona o un nombre por debajo, sin comodines).path_prefixcasa en un límite de segmento:/casa con todas las rutas;/blogcasa con/blogy/blog/x, no con/blogging. La query no cuenta.- Si casan varias reglas del mismo nombre, gana el prefijo más largo.
Cómo se construye el destino
Location es el target y además:
- con
preserve_path(activado por defecto): el resto de la ruta tras el prefijo; - con
preserve_query(activado por defecto): la query de la petición, añadida tras la del destino con&.
| Regla | Petición | Location |
|---|---|---|
/ → https://example.com | /a/b?x=1 | https://example.com/a/b?x=1 |
/blog → https://news.example.net/articles/ | /blog/x | https://news.example.net/articles/x |
/blog → https://news.example.net/articles/, preserve_path: false | /blog/x | https://news.example.net/articles/ |
/ → https://example.com/?ref=old | /?utm=y | https://example.com/?ref=old&utm=y |
Se rechaza una regla que redirigiría a su propio nombre en una ruta que ella misma captura (un bucle); por ejemplo, www.example.com / → https://www.example.com/home.
Qué estado elegir
| Estado | Uso |
|---|---|
301 (por defecto) | Traslado permanente. Navegadores y buscadores lo recuerdan. |
302 | Temporal; úsalo mientras pruebas. |
307 | Temporal, conserva el método (POST sigue siendo POST). |
308 | Permanente, conserva el método. |
Orden en el borde
- Los retos ACME HTTP-01 (
/.well-known/acme-challenge/) se contestan antes y nunca se redirigen. - Una petición
http://se redirige primero ahttps://en el mismo nombre y después se aplica la regla. - Las reglas se aplican después de la puerta de acceso, las reglas por IP y por país, las listas de amenazas, los límites de peticiones y la política del control de rastreadores IA, y antes del WAF y del origen. Consulta Cómo se procesa una petición.
www y la raíz
El borde ya redirige www.<raíz> a <raíz> (301, misma ruta y query) cuando la raíz es un sitio con proxy. Cede ante una regla explícita cuando el nombre www tiene una regla que casa con la ruta, o cuando la raíz tiene una regla cuyo destino es el nombre www (si no, harían bucle). Así que, para que www sea tu nombre canónico, añade una regla en la raíz: example.com / → https://www.example.com.
Requisitos
- Un registro DNS con proxy para el nombre. Sin él, el DNS no apunta al borde y el borde no conoce el nombre. El cambio se aplica, pero devuelve un aviso por cada regla cuyo nombre no tiene registro con proxy.
- Un certificado que cubra el nombre para HTTPS. Los certificados automáticos cubren los nombres con proxy de la zona, así que basta con el registro con proxy; con certificados subidos a mano, sube uno que cubra el nombre. Consulta Certificados del borde.
Gestionar las reglas
Dominio → Reglas → Redirecciones. Añadir redirección abre el editor con Nombre, Prefijo de ruta, URL de destino, Estado, Conservar el resto de la ruta y Conservar la consulta; enseña un ejemplo del resultado y la forma en que se guardará la regla. Edita o quita reglas desde la lista y guarda el cambio.
openwaf-cloud ctl zones show example.com
openwaf-cloud ctl zones set example.com redirects:='[
{"host":"old.example.com","target":"https://example.com"},
{"host":"example.com","path_prefix":"/blog","target":"https://news.example.net/articles/","status":302}
]' --reason "Trasladar el blog"PATCH /v1/orgs/{org}/zones/{zone}/edge con {"redirects": [...]}. La lista se sustituye entera; [] quita todas las reglas.
update_settings con settings.redirects (la lista entera). Las redirecciones son de la zona: no pases host a update_settings para ellas.