有没有办法让 wget 更智能地处理重定向,例如,如果主机跨接关闭,则不要遵循跨域重定向?

有没有办法让 wget 更智能地处理重定向,例如,如果主机跨接关闭,则不要遵循跨域重定向?

wget 处理重定向的方式似乎很糟糕

我知道可以使用以下重定向来禁用它--max-redirect=0,但这不是我想要的

我发现了几种 wget 行为不太好的场景:

场景 1 - 当进行重定向时,wget 仍以原始名称而不是重定向名称保存文件

例如,服务器将 test1.html 重定向到 test2.html,但 wget 仍然将文件保存为 test1.html:

$ wget https://server/test1.html
--2022-06-14 12:32:33--  https://server/test1.html
Resolving server (server)... (IPs)
Connecting to server (server)|(IP)|:443... connected.
HTTP request sent, awaiting response... 308 Permanent Redirect
Location: https://server/test2.html [following]
--2022-06-14 12:32:33--  https://server/test2.html
Reusing existing connection to [server]:443.
HTTP request sent, awaiting response... 200 OK
Length: unspecified [text/html]
Saving to: 'test1.html'

test1.html                                                          [ <=>                                                                                                                                                 ]       0  --.-KB/s    in 0s

2022-06-14 12:32:33 (0.00 B/s) - 'test1.html' saved [0]

期望结果:wget 应该将文件保存为 test2.html

场景 2:——即使未打开主机跨接,也会进行跨域重定向:

server1 将 test3.html 重定向到 https://server2/test4.html

$ wget https://server1/test3.html
--2022-06-14 12:42:58--  https://server1/test3.html
Resolving server1 (server1)... (IPs)
Connecting to server1 (server1)|(IP)|:443... connected.
HTTP request sent, awaiting response... 308 Permanent Redirect
Location: https://server2/sitemap.txt [following]
--2022-06-14 12:42:59--  https://server2/sitemap.txt
Resolving server2 (server2)... (IPs)
Connecting to server2 (server2)|(IP).. connected.
HTTP request sent, awaiting response... 200 OK
Length: unspecified [text/plain]
Saving to: 'test3.html'

test3.html                                                          [ <=>                                                                                                                                                 ]   1.15K  --.-KB/s    in 0s

2022-06-14 12:42:59 (12.4 MB/s) - 'test3.html' saved [1176]

期望结果:不应遵循重定向,因为主机跨接选项未打开

有没有什么办法可以实现这个呢?

在这种情况下,我可以控制服务器,因此可以根据需要在那里进行更改,但我已经尝试了多种类型的重定向,并且它们似乎都被 wget 视为相同。

相关内容