Products

Solutions

Learn More

Partners

Community

Blog

About

The Community Blog is a personal opinion of community members and by no means the official standpoint of DNN Corp or DNN Platform. This is a place to express personal thoughts about DNNPlatform, the community and its ecosystem. Do you have useful information that you would like to share with the DNN Community in a featured article or blog? If so, please contact .

The use of the Community Blog is covered by our Community Blog Guidelines - please read before commenting or posting.


Redirecciones en DNN

Las redirecciones son importantes en muchas situaciones.  A veces, son imprescindibles.
Piense, por ejemplo, en un anunciante que quiere transmitir que www.domain.com/venta es realmente la dirección www.domain.com/viajar-a-europa. Lo que haríamos aquí es crear una página en DNN, llamada ‘venta’ y establecer la configuración para que sea redirigida a www.domain.com/viajar-a-europa. 
 
Pero hay otras situaciones más complicadas, en las que deberá meterse de lleno en el archivo web.config para lograr su objetivo. Este artículo pretende ayudarle a empezar a tratar con algunas situaciones habituales, pero sólo es una introducción. 
 
Sea cuidadoso
Editar el archivo web.config es una operación que debe hacerse con mucho cuidado. Un error puede dejar fuera de juego su sitio web, así que siempre haga una copia de seguridad del web.config, antes de modificarlo. Por ejemplo, cópielo y renómbrelo como web.config.old, y le será sencillo revertir cualquier cambio usando un cliente FTP. 
 
No puede ponerlo en cualquier sitio
El archivo web.config sigue ciertas reglas de construcción. En concreto, la sección de reglas de redirecciones va dentro de la rama <system.webserver> del web.config.  </system.webserver>
 
La sección de redirecciones tendrá este aspecto 
 
<rewrite> 
<rules> 
Aquí irán las reglas 
</rules> 
</rewrite> 
 
Para ayudarle a situar esta sección, busque la sección que incluye httpProtocol.  
    <httpProtocol> 
      <customHeaders> 
        <remove name="X-Powered-By" /> 
      </customHeaders> 
    </httpProtocol> 
 
Todo el código dedirecciones irá debajo de lo anterior, algo como: 
 
    <httpProtocol> 
      <customHeaders> 
        <remove name="X-Powered-By" /> 
      </customHeaders> 
    </httpProtocol>  
       <rewrite> 
         <rules> 
Aquí sus reglas de redirecciones 
         </rules> 
       </rewrite> 
 
 Ahora, los diferentes tipos de redirecciones. Todas ellas usan expresiones regulares, así que le será de ayuda conocer su sintaxis, no demasiado sencilla, por cierto. Si no, puede copiar el código a continuación y poner su propio nombre de dominio. 
 
Forzar https 
Actualmente, ya no hay discusión sobre si el SSL es obligatorio o no. Los certificados son baratos o gratuitos y su instalación nunca había sido tan fácil. Por tanto, sólo nos queda asegurarnos de que nuestros visitantes no lleguen a la versión no SSL de nuestro sitio web. Por lo tanto, vamos a redirigirlos a la versión SSL. 
 
Algunos proveedores de alojamiento ofrecen Plesk, que tiene la opción de forzar el tráfico a SSL, pero es sencillo hacerlo mediante el web.config: a continuación, dos ejemplos para conseguirlo. 
 
Versión 1
<rewrite> 
<rules>   
<rule name="Redirigir a https" stopProcessing="true">   
   <match url="(.*)" />     
   <conditions>     
      <add input="{HTTPS}" pattern="off" ignoreCase="true" />     
   </conditions>
   <action type="Redirect" url="https://{HTTP_HOST}/{R:1}"                    redirectType="Permanent" />   
</rule>
</rules>
</rewrite> 
 
Versión 2
<rule name="Redirigir a https " enabled="true" patternSyntax="Wildcard" stopProcessing="true"> 
   <match url="*" negate="false" /> 
   <conditions logicalGrouping="MatchAll"> 
      <add input="{HTTPS}" pattern="off" /> 
      <add input="{HTTP_HOST}" pattern="www.mywebsite.com" /> 
   </conditions> 
   <action type="Redirect" url="https://{HTTP_HOST}{REQUEST_URI}" redirectType="Permanent" /> 
</rule> 
 
Dominios adicionales 
Algunos clientes tienen más de un dominio, y todos deben ser dirigidos al sitio web en el dominio principal. La mayoría de las veces, los dominios adicionales se compran para facilitar la comunicación, reclamando una palabra genérica o alternaciones en el nombre de dominio principal.  
 
Por supuesto, no queremos mantener varios sitios web, ni pagar nombres de dominio adicionales por los certificados SSL, ni licencias adicionales por módulos en más de un dominio. Por tanto, una vez más, vamos a redireccionar. Esta vez, el dominio adicional (dominio 2) será dirigido al dominio 1 
 
Como el dominio adicional no va a ser indexado por Google, nos bastará con: 
 
<rule name="redirección a otro dominio" enabled="true" patternSyntax="Wildcard" stopProcessing="true"> 
   <match url="*" negate="false" /> 
   <conditions logicalGrouping="MatchAll"> 
      <add input="{HTTP_HOST}" pattern="www.domain2.com" />
   </conditions> 
   <action type="Redirect" url="http://www.domain1.com{REQUEST_URI}" redirectType="Permanent" /> 
</rule> 
 
 Capturando el tráfico antiguo
La peor de las pesadillas: nuevo cliente, le desarrollamos una gran tienda online, mucho mejor que el viejo WooCommerce, todo sale bien, lo publicamos y... las ventas caen. ¡Yuhu! 
 
Es muy probable que el 90% del tráfico se esté topando con una página de error 404 y huya de nuestro web. La tienda antigua tenía otra estructura, e incluso direcciones terminadas en .php. Además de clientes decepcionados, Google nos va a penalizar. La autoridad de páginas y del dominio están perdiendo puntos, y ésa es una reputación muy complicada de recuperar. 
 
Por supuesto, la situación ideal es redirigir la antigua URL del producto A a su nueva URL. Pero esto puede suponer miles de redirecciones. Si no eres Aliexpress, seguramente es demasiado trabajo. La alternativa es redirigir todo lo que termine en .php. En esta situación, una redirección sería algo como: 
 
<rule name="Redirigir URL antiguas" stopProcessing="true"> 
   <match url="(.*)" />
   <conditions logicalGrouping="MatchAny" trackAllCaptures="false"> 
      <add input="{HTTP_HOST}{REQUEST_URI}" pattern="domainname.com/(.*)\.php" /> 
      <add input="{HTTP_HOST}{REQUEST_URI}" pattern="www.domainname.com/(.*)\.php" />
   </conditions><action type="Redirect" url="/" redirectType="Permanent"/> 
</rule>
 
Básicamente, lo que esto dice es: sea la página de producto que sea, si acaba en .php, redirige a la página de inicio.
 
¿Y mis artículos del blog?
Otro caso que nos encontramos a menudo es la puesta al día de un módulo de blog. Por ejemplo, nuestro obsoleto Ventrian News Articles lo hemos actualizado con Easy DNN News:
<rule name="Blog VE">
   <match url="^Blog/ctl/ArticleView/mid/1234/articleId/([0-9]+)/([_0-9a-z-\/ñáéíóúÑÁÉÍÓÚ%()]+)" />
   <action type="Redirect" url="/blog/{R:2}" redirectType="Permanent" />
</rule>
 
 
Dame más, dame más...
Todo lo anterior son redirecciones configuradas en IIS. Toda la documentación está disponible en: 

Versión traducida y ampliada del original de Tycho de Waard: Redirects in DNN

Publicación cruzada en el blog sobre DNN en español: Redirecciones en DNN

Comments

There are currently no comments, be the first to post one.

Comment Form

Only registered users may post comments.

NewsArchives


Aderson Oliveira (22)
Alec Whittington (11)
Alessandra Davies (3)
Alex Shirley (10)
Andrew Hoefling (3)
Andrew Nurse (30)
Andy Tryba (1)
Anthony Glenwright (5)
Antonio Chagoury (28)
Ash Prasad (37)
Ben Schmidt (1)
Benjamin Hermann (25)
Benoit Sarton (9)
Beth Firebaugh (12)
Bill Walker (36)
Bob Kruger (5)
Bogdan Litescu (1)
Brian Dukes (2)
Brice Snow (1)
Bruce Chapman (20)
Bryan Andrews (1)
cathal connolly (55)
Charles Nurse (163)
Chris Hammond (213)
Chris Paterra (55)
Clint Patterson (101)
Cuong Dang (21)
Daniel Bartholomew (2)
Daniel Mettler (165)
Daniel Valadas (25)
Dave Buckner (2)
David Poindexter (12)
David Rodriguez (3)
Dennis Shiao (1)
Doug Howell (11)
Erik van Ballegoij (30)
Ernst Peter Tamminga (79)
Francisco Perez Andres (12)
Geoff Barlow (12)
George Alatrash (12)
Gifford Watkins (3)
Gilles Le Pigocher (3)
Ian Robinson (7)
Israel Martinez (17)
Jan Blomquist (2)
Jan Jonas (3)
Jaspreet Bhatia (1)
Jenni Merrifield (6)
Joe Brinkman (274)
John Mitchell (1)
Jon Henning (14)
Jonathan Sheely (4)
Jordan Coopersmith (1)
Joseph Craig (2)
Kan Ma (1)
Keivan Beigi (3)
Kelly Ford (3)
Ken Grierson (10)
Kevin Schreiner (6)
Leigh Pointer (31)
Lorraine Young (60)
Malik Khan (1)
Matt Rutledge (1)
Matthias Schlomann (16)
Mauricio Márquez (5)
Michael Doxsey (7)
Michael Tobisch (3)
Michael Washington (202)
Miguel Gatmaytan (3)
Mike Horton (19)
Mitchel Sellers (35)
Nathan Rover (3)
Navin V Nagiah (14)
Néstor Sánchez (31)
Nik Kalyani (14)
Oliver Hine (1)
Peter Donker (54)
Philip Beadle (135)
Philipp Becker (4)
Richard Dumas (22)
Robert J Collins (5)
Roger Selwyn (8)
Ruben Lopez (1)
Ryan Martinez (1)
Sacha Trauwaen (1)
Salar Golestanian (4)
Sanjay Mehrotra (9)
Scott McCulloch (1)
Scott S (11)
Scott Wilkinson (3)
Scott Willhite (97)
Sebastian Leupold (80)
Shaun Walker (237)
Shawn Mehaffie (17)
Stefan Cullmann (12)
Stefan Kamphuis (12)
Steve Fabian (31)
Steven Fisher (1)
Timo Breumelhof (24)
Tony Henrich (3)
Torsten Weggen (3)
Tycho de Waard (4)
Vicenç Masanas (27)
Vincent Nguyen (3)
Vitaly Kozadayev (6)
Will Morgenweck (40)
Will Strohl (172)
William Severance (5)

Content Layout

Subscribe to DNN Digest

Subscribe to DNN Digest

DNN Digest is our monthly email newsletter. It highlights news and content from around the DNN ecosystem, such as new modules and themes, messages from leadership, blog posts and notable tweets. Keep your finger on the pulse of the ecosystem by subscribing.  

What is Liquid Content?
Find Out
What is Liquid Content?
Find Out
What is Liquid Content?
Find Out