![在 Nginx 中,将旧 URL 映射到新 URL 不起作用](https://linux22.com/image/728420/%E5%9C%A8%20Nginx%20%E4%B8%AD%EF%BC%8C%E5%B0%86%E6%97%A7%20URL%20%E6%98%A0%E5%B0%84%E5%88%B0%E6%96%B0%20URL%20%E4%B8%8D%E8%B5%B7%E4%BD%9C%E7%94%A8.png)
我正在将旧的 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
指令位于http
Nginx 配置块内。尽管您可以将配置分成多个单独的文件,但 Nginx 会将它们解释为单个连续的文档。
因此你的配置如下所示:
http {
map $uri $new { ... }
server {
if ($new) { ... }
}
map $uri $new { ... }
server {
if ($new) { ... }
}
}
您必须将其中一个$new
变量重命名为唯一的名称。请参阅这个文件了解更多信息。