答案1
location = / {
rewrite ^ http://site.com/blog/ redirect;
}
这只会专门针对根发出请求。如果您需要捕获所有内容(重定向http://site.com/somearticle/something.html
到http://site.com/blog/somearticle/something.html
),那么您将需要更复杂的东西:
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;
}
答案2
尝试一下这个:
location = / {
return 301 /blog/;
}
关键是‘=’象征。
答案3
这对我来说不起作用。以下方法有效:
打开您网站的 NGINX 配置文件。在服务器块内,添加根目录的路径并设置文件的优先级顺序:
root /mnt/www/www.domainname.com; index index.php index.html index.htm;
创建一个空的位置块前所有其他位置块:
location /latest { # Nothing in here; this is to avoid redirecting for this location }
注释掉 location / {} 块中的根目录指令并添加重定向,使其看起来像这样:
location / { # root /mnt/www/www.domainname.com; index index.php index.html index.htm; rewrite ^/(.*)$ http://www.domainname.com/latest/$1 redirect; }
确保您的 location ~ .php$ 块将其根指向
root /mnt/www/www.domainname.com;
这帮我解决了这个问题。
答案4
对于仅显示主页而不显示其他内容的情况,我将使用:
location / {
rewrite ^/$ /blog/ redirect;
}
其他任何内容,例如 /foo/ 都不会重定向到 /blog/ 。