Nginx: reescribir desde el dominio base a un subdirectorio

Nginx: reescribir desde el dominio base a un subdirectorio

Tengo un blog alojado enhttp://sitio.com/blog.

¿Cómo le indico a nginx que reescriba las solicitudes de site.coma site.com/blog?

Esto no debería ser permanente.

Respuesta1

location = / {
    rewrite ^ http://site.com/blog/ redirect;
}

Esto solo hará solicitudes específicamente para la raíz. Si necesita captar todo (redireccionar http://site.com/somearticle/something.htmla http://site.com/blog/somearticle/something.html), necesitará algo más complicado:

location /blog/ {
    # Empty; this is just here to avoid redirecting for this location,
    # though you might already have some config in a block like this.
}
location / {
    rewrite ^/(.*)$ http://site.com/blog/$1 redirect;
}

Respuesta2

prueba esto en su lugar:

location = / {
      return 301 /blog/;
 }

La clave aquí es'='símbolo.

Respuesta3

Esto no ha funcionado para mí. Esto es lo que ha funcionado:

  1. Abra el archivo de configuración NGINX para su sitio. Dentro del bloque del servidor, agregue la ruta a su directorio raíz y establezca el orden de prioridad de los archivos:

    root /mnt/www/www.domainname.com;
    index  index.php index.html index.htm;
    
  2. Crear un bloque de ubicación vacíoantestodos tus otros bloques de ubicación:

    location /latest {
    # Nothing in here; this is to avoid redirecting for this location
    }
    
  3. Comente la directiva del directorio raíz en su bloque ubicación / {} y agregue la redirección para que se vea así:

    location / {
    # root   /mnt/www/www.domainname.com;
    index  index.php index.html index.htm;
    rewrite ^/(.*)$ http://www.domainname.com/latest/$1 redirect;
    }
    
  4. Asegúrese de que su bloque de ubicación ~ .php$ apunte su raíz a

    root /mnt/www/www.domainname.com;
    

Esto me lo arregló.

Respuesta4

Solo para la página de inicio y nada más, usaría:

location / {           
    rewrite ^/$ /blog/ redirect;
}

cualquier otra cosa, como /foo/ no sería redirigida a /blog/ .

información relacionada