Redirigir la subcarpeta a la carpeta raíz en Apache, NGINX, IIS y Cloudflare

Tenía mi sitio en subcarpeta y decidí pasar al nivel raíz del dominio.

El principal desafío era mantener todos los artículos en la misma ruta como una subcarpeta mientras se redirigía la URL a la raíz del dominio oa otra ubicación.

apache

El servidor Apache HTTP admite RewriteCond. Para realizar este cambio, edite su archivo .htaccess o httpd.conf y agréguele las siguientes líneas:

RewriteEngine on
RewriteBase /
RewriteRule ^subfolder/(.*)$ /$1 [R=301,NC,L]

Aquí estamos usando / como nuestra base y nuestra regla de reescritura funciona para todas las URL en nuestra subcarpeta mediante el uso de expresiones regulares. R=301 especifica una redirección permanente.

Nginx

Podemos lograr una redirección similar con el servidor web Nginx usando la directiva de reescritura en su /etc/nginx/nginx.conf o /etc/nginx/conf.d/default.conf:

location ^~ /subfolder {
     rewrite ^/subfolder(.*)$ $1 last;
}

Aquí el modificador ^~ garantiza que esta ubicación de prefijo siga teniendo prioridad si fuera a agregar ubicaciones de expresiones regulares en el futuro.

IIS

En IIS podemos usar el módulo Rewrite para reescribir URLs que están en una subcarpeta y queremos que aparezcan como si estuvieran en la raíz. Puede editar su archivo web.config en su carpeta webroot (%SystemDrive%inetpubwwwroot) con algo como:

<?xml version="1.0" encoding="UTF-8"?>
<configuration>
    <system.webServer>
        <rewrite>
            <rules>
                <rule name="Root_URL_Rewrite" stopProcessing="true">
                    <match url="^(.*)" />
                    <action type="Rewrite" url="/subfolder/{R:0}" />
                </rule>
            </rules>
        </rewrite>
    </system.webServer>
</configuration>

Como alternativa, también puede usar la interfaz de usuario de reescritura de URL en el Administrador de IIS para agregar una regla de entrada.

Llamarada de la nube

Podemos lograr una redirección similar usando Cloudflare siguiendo los pasos a continuación:

  • Inicie sesión en su cuenta de Cloudflare.
  • Haga clic en la cuenta de Cloudflare adecuada para el dominio donde desea agregar el reenvío de URL.
  • Haga clic en la aplicación Reglas, luego haga clic en la pestaña Reglas de la página.
  • En Reglas de página, haga clic en Crear regla de página. Se abre el cuadro de diálogo Crear regla de página para su dominio.
  • Ahora, en Si la URL coincide, ingrese el patrón de URL para una subcarpeta que debería coincidir con la regla, como https://example.com/subcarpeta.
  • A continuación, haga clic en Agregar una configuración y elija URL de reenvío en el menú desplegable.
  • Haga clic en Seleccionar código de estado y elija 301 (Redireccionamiento permanente) o 302 (Redireccionamiento temporal).
  • Ingrese la URL de destino para su dominio raíz y haga clic en Guardar e implementar para finalizar.

El ejemplo anterior es redirigir todo, desde https://kirukiru.es.com/blog a https://kirukiru.es.com

Terminando

Como puede ver, redirigir o asignar una subcarpeta a la raíz u otra URL es una tarea común y es compatible con la mayoría de los navegadores populares con diferentes opciones.

A continuación, descubra cómo puede alojar múltiples sitios web en una sola IP.

¿Te gustó leer el artículo? ¿Qué tal compartir con el mundo?