我最近将一个网站从一个巨大的 WordPress 博客缩减为一个页面(主页)和另一个页面。
我想将所有非主页页面 301 重定向/confirmed
到主页。我尝试过几种方法,但都以重定向循环结束。以下是我在配置文件中的内容。
谢谢您的帮助!
location / {
try_files $uri $uri/ $uri/index.php?$args;
}
location /confirmed {
try_files $uri $uri/ /confirm-user.php?$args;
}
使用此配置,所有其他 URL 都将转到主页,但不是 301。
答案1
我相信这会满足你的要求:
location ~ "^/$" {
try_files $uri $uri/ /index.php?$args;
}
location ~ "^/confirmed$" {
try_files $uri $uri/ /confirm-user.php?$args;
}
location / {
return 301 /index.php;
}
答案2
这应该可以解决问题:
location = / {
try_files $uri $uri/ /index.php?$args;
}
location = /confirmed {
try_files $uri $uri/ /confirm-user.php?$args;
}
location / {
return 301 /;
}
首先location
匹配根路径,且只匹配根路径。
第二个块/confirmed
仅匹配/confirmed
。
最后location
匹配所有其他 URL,触发重定向。
更多信息可以在 nginx 核心模块中找到文档