Nginx   发布时间:2022-05-11  发布网站:大佬教程  code.js-code.com
大佬教程收集整理的这篇文章主要介绍了301重定向时,nginx保留端口号大佬教程大佬觉得挺不错的,现在分享给大家,也给大家做个参考。

我正在尝试将第二个品牌的网络应用程序拆分为第一个品牌,并使用301重定向来重定向任何挥之不去的流量.服务器在端口8001上的Vagrant框转发中运行.我希望:

而不是https://local-dev-url:8001/foo/(anything) 301到https://local-dev-url:8001/(anything)

而不是https://local-dev-url:8001/adminfoo/(anything) 301至https://local-dev-url:8001/admin/(anything).

这就是我所拥有的:

    LOCATIOn ~ /foo/?(.*)${
        return 301 $1/;
    }

    LOCATIOn ~ /adminfoo/?(.*)${
        return 301 admin/$1/;
    }

    LOCATIOn / {
        proxy_set_header Host $http_host;
        proxy_set_header X-Real-IP $remote_addr;
        proxy_set_header X-ForWARDed-For $proxy_add_x_forWARDed_for;
        proxy_set_header X-ForWARDed-Port 443;
        proxy_set_header Authorization $http_authorization;
        proxy_set_header X-scheR_887_11845@e $scheR_887_11845@e;
        proxy_pass http://127.0.0.1:5000;
        proxy_redirect http:// $scheR_887_11845@e://;
    }

    LOCATIOn /admin/ {
        alias /hostonly/path/to/admin/stuff/;
    }

但是,不是将https://local-dev-url:8001/foo/重定向到https://local-dev-url:8001/而是301到https://local-dev-url//. (没有端口号,额外的斜杠.)我已经看到了对重定向的URL进行硬编码的答案,但由于我与许多其他开发人员合作并且我们都有唯一的本地开发URL,唯一一致的部分是: 8001端口号.

有没有办法配置301按需工作?

最佳答案
如果Nginx没有侦听端口8001,则无法知道重定向中使用哪个端口.您需要明确指定它:

LOCATIOn ~ /foo(.*)${
    return 301 $scheR_887_11845@e://$http_host$1;
}
LOCATIOn ~ /adminfoo(.*)${
    return 301 $scheR_887_11845@e://$http_host/admin$1;
}

$http_host变量由原始请求中的主机名和端口组成.有关详情,请参见this document.

大佬总结

以上是大佬教程为你收集整理的301重定向时,nginx保留端口号全部内容,希望文章能够帮你解决301重定向时,nginx保留端口号所遇到的程序开发问题。

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

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