gpt4 book ai didi

url-rewriting - 根据 Haproxy 中的路径重定向到新域

转载 作者:行者123 更新时间:2023-12-02 00:56:07 29 4
gpt4 key购买 nike

您好,提前感谢您的帮助。

我的旧网站上有一个博客,我正在尝试使用 haproxy 将所有帖子 301 重定向到新网站上的新位置。例如,我想要 https://www.oldsite.com/john-blog/blogpost1被301重定向到https://www.newsite.com/jill-blog/blogpost1 .

https://www.oldsite.com/john-blog => https://www.newsite.com/jill-blog

frontend https
option http-server-close
reqadd X-Forwarded-Proto:\ https

acl is_ob path_sub john-blog

redirect location https://www.newsite.com/jill-blog code 301 if is_ob

我已经弄清楚如何为 /john-blog 转发流量,但还没有弄清楚如何进行重写以便 /john-blog/blogpost1 在旧网站上 301s 到 /jill-blog/blogpost1 在新网站上。

最佳答案

这是我能够想出的:

frontend https
option http-server-close
reqadd X-Forwarded-Proto:\ https

acl old_site hdr(host) -i www.oldsite.com
acl john_blog path_beg /john-blog
acl jill_blog path_beg /jill-blog

reqrep ^([^\ ]*\ /)john-blog(.*) \1jill-blog\2 if old_site john_blog
redirect prefix https://www.newsite.com code 301 if old_site jill_blog

此配置的唯一缺点是它还会重定向 https://www.oldsite.com/jill-blog => https://www.newsite.com/吉尔博客。如果这是一个问题,我可以尝试解决其他问题。

工作原理

我将按照请求 https://www.oldsite.com/john-blog/blogpost1 的示例。

在此示例中,acl old_site 为真,acl john_blog 为真,acl jill_blog 为假。

reqrep 行将 john-blog 替换为 jill-blog 只有 old_site >john_blog acls 是真的,对于这个例子来说就是这种情况。在这一行之后,示例 url 将是 https://www.oldsite.com/jill-blog/blogpost1

此时 acl john_blog 不再为真,但 acl jill_blog 为真,因为 uri 现在以 /jill-blog 开头。 acl old_site 仍然正确。

redirect 行在 prefix mode 中其中重定向位置由提供的字符串确定,并附加了原始 uri。在此示例中,提供的字符串是 https://www.newsite.com 并且附加的 uri 是 /jill-blog/blogpost1 导致 reditect url https://www.newsite.com/jill-blog/blogpost1

希望对您有所帮助。

关于url-rewriting - 根据 Haproxy 中的路径重定向到新域,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34955413/

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