程序问答   发布时间:2022-06-02  发布网站:大佬教程  code.js-code.com
大佬教程收集整理的这篇文章主要介绍了删除 www 和缩短 URL 时如何避免 Nginx 中的多次重定向大佬教程大佬觉得挺不错的,现在分享给大家,也给大家做个参考。

如何解决删除 www 和缩短 URL 时如何避免 Nginx 中的多次重定向?

开发过程中遇到删除 www 和缩短 URL 时如何避免 Nginx 中的多次重定向的问题如何解决?下面主要结合日常开发的经验,给出你关于删除 www 和缩短 URL 时如何避免 Nginx 中的多次重定向的解决方法建议,希望对你解决删除 www 和缩短 URL 时如何避免 Nginx 中的多次重定向有所启发或帮助;

我浏览了很多教程,但找不到我的案例的答案。

我正在将我的网站移至非 www 域,同时还重命名和缩短 URL。 下面是我的 Nginx 虚拟 conf 结构:

server {
    Listen              443 ssl;
    server_name         www.example.com;
    ssl_certificate     /path/to/certificate.crt;
    ssl_certificate_key /path/to/private/key.pem;
    ssl_protocols       TLSv1 TLSv1.1 TLSv1.2;
    return              301 https://example.com$request_uri;
}

server {
    Listen              443 ssl;
    server_name         example.com;
    ssl_certificate     /path/to/certificate.crt;
    ssl_certificate_key /path/to/private/key.pem;
    ssl_protocols       TLSv1 TLSv1.1 TLSv1.2;

    # 400 redirects manually entered here: 
    LOCATIOn /long-url-1/ { return 301 https://example.com/short-url-1; }
    LOCATIOn /long-url-2/ { return 301 https://example.com/short-url-2; }
    # etc,other redirects conTinue 

}

我目前遇到的上述重定向规则的问题是,如果我在浏览器中输入完整的长 URL,例如:

https://www.example.com/long-url-1/

我在到达目标网址之前被重定向了两次:

301 https://www.example.com/long-url-1/
301 https://example.com/long-url-1/
200 https://example.com/short-url-1

这显然对用户和搜索引擎机器人不利。

我想可能的解决方案可能是采用我的重定向规则并将它们也复制到第一个服务器块中(就在 return 301 https://example.com$request_uri; 之前)但它不起作用。我仍然得到两个重定向 www => non-www => new-short-url。

如何避免多次重定向并将用户直接发送到我的目标网址?

编辑请注意,我仍然想从 www => 非 www 重定向用户,以防在我的“手动输入的重定向列表”中找不到请求的 URL,例如:

https://www.example.com/some-new-url/ => 301 redirect => https://example.com/some-new-url/

解决方法

暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!

如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。

小编邮箱:dio#foxmail.com (将#修改为@)

大佬总结

以上是大佬教程为你收集整理的删除 www 和缩短 URL 时如何避免 Nginx 中的多次重定向全部内容,希望文章能够帮你解决删除 www 和缩短 URL 时如何避免 Nginx 中的多次重定向所遇到的程序开发问题。

如果觉得大佬教程网站内容还不错,欢迎将大佬教程推荐给程序员好友。

本图文内容来源于网友网络收集整理提供,作为学习参考使用,版权属于原作者。
如您有任何意见或建议可联系处理。小编QQ:384754419,请注明来意。