
Tengo un blog alojado enhttp://sitio.com/blog.
¿Cómo le indico a nginx que reescriba las solicitudes de site.com
a 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.html
a 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:
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;
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 }
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; }
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/ .