gpt4 book ai didi

redirect - nginx:如何从给定列表中批量永久重定向?

转载 作者:行者123 更新时间:2023-12-02 14:58:45 38 4
gpt4 key购买 nike

我有大约 400 个网址将在新版本中更改,并且由于某些原因我无法在新网站中重复相同类型的网址结构。

我的问题是,我可以给 nginx 一个 url 列表(是的,我知道 400 个),然后简单地告诉他每个 URL 都会转到另一个 url 吗?

就像我说的,url 结构会有所不同,所以我不能使用任何类型的模式。

提前致谢。

最佳答案

map指令

如果您有很长的条目列表,最好将它们保留在 nginx 配置文件之外 - 使用 .map 文件。

首先您需要添加 map您的 nginx.conf 内的指令文件 - 请记住您的 .conf文件可以以其他方式命名(例如 default.conf )。

nginx.conf

map_hash_bucket_size 256; # see http://nginx.org/en/docs/hash.html

map $request_uri $new_uri {
include /etc/nginx/oldnew.map; # or any file readable by nginx
}

server {
listen 80;
server_name your_server_name;

if ($new_uri) {
return 301 $new_uri;
}

...
}

然后,map指令将映射任何 $request_uri到匹配的$new_urioldnew.map 内找到文件。

/etc/nginx/oldnew.map:

/my-old-url /my-new-url;
/old.html /new.html;

Be sure to end each line with a ";" char!

<小时/>

附加配置

如果您需要将所有 URL 重定向到另一个主机,您可以使用:

return 301 http://example.org$new_uri;

或者,如果您还需要重定向到另一个端口,您可以使用:

return 301 http://example.org:8080$new_uri;

关于redirect - nginx:如何从给定列表中批量永久重定向?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29354142/

38 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com