在 Nginx 中,将旧 URL 映射到新 URL 不起作用

在 Nginx 中,将旧 URL 映射到新 URL 不起作用

我正在将旧的 URL 移动到新的 URL(超过 50 个),因此我已将 URL 放在一个文件中,但重定向没有发生。

map_hash_max_size 262144;
map_hash_bucket_size 262144;

map $uri $new {
    include /etc/nginx/maps/redirect_example_com.map;
}


if ($new) {
         rewrite ^ $new redirect;
        }

下面的 URL 位于文件 redirect_example_com.map 中

/wp/articles  /aricles;

另一个运行良好的虚拟主机正在使用相同的配置。

#map_hash_max_size 262144;
#map_hash_bucket_size 262144;


map $uri $new {
    include /etc/nginx/maps/redirect_hello_com.map;
}
 if ($new) {
         rewrite ^ $new redirect;
        }

这里我没有使用桶大小。

答案1

map指令位于httpNginx 配置块内。尽管您可以将配置分成多个单独的文件,但 Nginx 会将它们解释为单个连续的文档。

因此你的配置如下所示:

http {
    map $uri $new { ... }
    server {
        if ($new) { ... }
    }
    map $uri $new { ... }
    server {
        if ($new) { ... }
    }
}

您必须将其中一个$new变量重命名为唯一的名称。请参阅这个文件了解更多信息。

相关内容