Primeros pasos
Esta página describe casos de uso comunes para crear reglas en la aplicación Redirect Web.
(También puedes conocer los detalles de la configuración de reglas en la página Configuración de reglas.)
Caso 1: Abrir otro sitio web
Supongamos que eres adicto a Twitter y decides meditar en Insight Timer cada vez que abres Twitter accidentalmente. ¡Vamos a crear una regla para eso!
Paso 1. Configurar "Redirigir desde"
Primero, debes configurar la sección Redirigir desde en la pantalla Editar regla de la aplicación. Los objetivos son URL que comienzan con https://twitter.com/
.
En este caso, puedes especificar el siguiente patrón con el modo Comodín:
https://twitter.com/*
En el modo Comodín, *
significa que coincide con cualquier cosa (= cero o más caracteres).
Sin embargo, espera. twitter.com
fue renombrado a x.com
. Puedes simplemente reemplazar twitter.com
con x.com
, pero nadie sabe cuándo el nuevo propietario cambiará de opinión de nuevo para revertirlo. Por lo tanto, vamos a apuntar tanto a twitter.com
como a x.com
.
Para hacer eso, cambia de Comodín a Expresión regular y establece este como el patrón:
https://(twitter|x).com/.*
(twitter|x)
: apunta tanto atwitter
como ax
. (|
se llama una barra vertical.).*
: Es lo mismo que el*
de Comodín. Más específicamente,.
significa cualquier carácter y*
significa cualquier cosa antes de este símbolo repetida cualquier número de veces, lo que resulta en que coincide con cualquier cosa.
Las expresiones regulares son un poco complicadas, pero una vez que te acostumbras a ellas, serán una herramienta poderosa. Recomendamos usar RegExr como un campo de pruebas para analizar cómo funciona tu patrón de Expresión Regular.
[!NOTA] En las expresiones regulares,
.
en(twitter|x).com
también se trata como cualquier carácter. Por lo tanto,(twitter|x).com/.*
también coincide, por ejemplo, contwitter1com/
ox_com/
.Para evitarlo, puedes cambiarlo a
(twitter|x)\.com/.*
.\
se usa para escapar un carácter especial.Sin embargo, no existen tales URL en el entorno general de internet. Por lo tanto, puedes dejar
.
como un carácter especial si lo prefieres. Tu regla es para tu propio uso, así que impleméntala como mejor te parezca.
Paso 2: Configurar "Redirigir a"
Simplemente especifica la URL de la siguiente manera:
https://insighttimer.com/saraauster/guided-meditations/calm
¡Ahora, Redirect Web te lleva a la meditación cuando accedes a Twitter!
Caso 2: Eliminar parámetros de consulta de la URL
Supongamos que hay un parámetro de consulta source=twitter
en una URL de example.com
, y decides eliminarlo para anonimizarte.
En este caso, la opción Procesamiento de grupo de captura es la forma más sencilla:
- Redirigir desde:
https://example.com/*
(Comodín) - Redirigir a:
$0
- Procesamiento de grupo de captura:
- Grupo:
$0
- Proceso: Reemplazar ocurrencias
- Objetivo:
&?source=[^&]*
- Reemplazo: (ninguno)
- Patrón de texto: Expresión regular
- Objetivo:
- Grupo:
Esta regla funciona de la siguiente manera:
https://example.com/?source=twitter
↪ https://example.com/?
https://example.com/?hello=world&source=twitter&foo=bar
↪ https://example.com/?hello=world&foo=bar
Si deseas eliminar más parámetros, agrega más procesos.
Caso 3: Añadir parámetros de consulta a la URL
Supongamos que hay un sitio web llamado example.com
que muestra un diseño móvil por defecto, pero prefieres su diseño de escritorio. Afortunadamente, el sitio web admite un parámetro de consulta layout
para especificar qué diseño muestra el sitio web. ¡Vamos a crear una regla que añada layout=desktop
automáticamente!
Quizás pienses que podrías definirlo de la siguiente manera:
- Redirigir desde:
https://example.com/.*
(Expresión regular) - Redirigir a:
$0?layout=desktop
$0
hace referencia a la URL de destino. Si intentas acceder a example.com/hello
, eres redirigido a example.com/hello?layout=desktop
. Esta característica se llama sustitución.
[!CONSEJO] La sustitución también está disponible para el modo Comodín, ya que internamente se convierte a Expresión Regular.
Sin embargo, hay algunos problemas con esta configuración.
Problema 1: Bucle infinito
La configuración actual crea un bucle de redirección infinito, ya que https://example.com/.*
también apunta a https://example.com/hello?layout=desktop
.
En este caso, puedes especificar un patrón de URL excluido que te permita acceder sin redirección, como este con Expresión regular:
.*[&?]layout=[^&]*.*
.*
: Coincide con cualquier cosa[&?]
: Coincide con&
o?
[^&]*
: Coincide con cualquier cosa excepto&
Problema 2: No se pueden manejar los parámetros existentes correctamente
Si la URL de destino ya tiene otros parámetros de consulta como example.com/hello?theme=dark
, el destino será example.com/hello?theme=dark?layout=desktop
(Hay dos ?
en la URL) pero solo puedes unir los parámetros con &
. ?
como carácter especial solo está permitido al principio de los parámetros. Por lo tanto, no se trata como un parámetro válido.
En este caso, cambia la configuración de esta manera:
- Redirigir desde:
(https://example.com/[^?]*)(\?(.*))?
- Redirigir a:
$1?layout=desktop&$3
Veamos paso a paso.
(https://example.com/[^?]*)
: Coincide con la parte hasta el carácter anterior a?
.[^?]*
coincide con cualquier cosa excepto?
.- Esto está envuelto entre
()
para que puedas referenciarlo con$1
más tarde.
(\?(.*))?
: Coincide con una cadena que comienza con?
, lo que significa parámetros de consulta.- Esto también coincide con una cadena vacía mediante el cuantificador
?
al final del patrón, que coincide cero o una vez. - Los
()
externos y los()
internos se pueden referenciar con$2
y$3
más tarde.
- Esto también coincide con una cadena vacía mediante el cuantificador
RegExr puede ayudarte a entender los detalles.
[!NOTA] RegExr muestra un error cuando no escapas
/
con\
. Aunque puedes escaparlo, no es necesario ya que Redirect Web utiliza un motor diferente de Apple que no requiere el escape.
Esta no es una solución perfecta, ya que redirige example.com/hello
a example.com/hello?layout=desktop&
, lo que incluye un &
innecesario al final de la URL. No es un gran problema en general, pero si deseas eliminarlo, puedes usar el Procesamiento de grupo de captura.
En conclusión, esta es la salida final:
- Redirigir desde:
(https://example.com/[^?]*)((\?(.*))?)
(Expresión regular) - Redirigir a:
$1?layout=desktop$3
- Patrón de URL excluido:
.*[&?]layout=[^&]*.*
(Expresión regular) - Procesamiento de grupo de captura:
- Grupo:
$3
- Proceso: Reemplazar ocurrencias
- Objetivo:
\?(.*)
- Reemplazo:
&$1
- Objetivo:
- Grupo:
Esto es meramente un ejemplo. También puedes crear varias reglas para manejar cada problema. Puede ser mucho más sencillo.