Php 将HTTP重定向到HTTPS(中间件重定向vs Nginx)
我想问一下HTTP到HTTPS的重定向。正如我们所知,Php 将HTTP重定向到HTTPS(中间件重定向vs Nginx),php,laravel,nginx,redirect,https,Php,Laravel,Nginx,Redirect,Https,我想问一下HTTP到HTTPS的重定向。正如我们所知,WWW到无WWW重定向是通过从web服务器端重定向来实现的。但是,当涉及到https重定向时,它可以通过两种方式完成,服务器端(Nginx等…)和应用程序端(中间件)。我想知道: 以下哪种方法有效且性能更好 考虑到同一服务器上的多个顶级域和子域域,每种方法的优缺点 多谢各位 参考: 这里基于服务器的重定向应该更有效,因为它发生在加载任何应用程序代码之前 就我个人而言,我总是在所有站点的nginx服务器{}块中这样做。我为一个域创建了一个
WWW到无WWW
重定向是通过从web服务器端重定向来实现的。但是,当涉及到https重定向时,它可以通过两种方式完成,服务器端(Nginx等…
)和应用程序端(中间件
)。我想知道:
顶级
域和子域
域,每种方法的优缺点这里基于服务器的重定向应该更有效,因为它发生在加载任何应用程序代码之前 就我个人而言,我总是在所有站点的nginx服务器{}块中这样做。我为一个域创建了一个conf文件,有两个服务器{}块,一个主块监听443上的HTTPS流量,另一个小块只识别(子)域并重定向到HTTPS协议 下面是我针对特定子域的重定向服务器{}块示例:
server {
server_tokens off;
listen 80;
server_name sub.domain.com;
return 301 https://sub.domain.com$request_uri;
}
至于基于服务器的优点和缺点,我想说的显而易见的是:
赞成的意见
- 演出
- 简朴
- 需要根访问权限(至少对于nginx,Apache您可以在.htaccess文件中完成,但这本身就有性能成本)
- 不能如此轻松地改变事情(灵活性?)
APP\u URL
环境变量外,我是否需要更改Laravel项目中的任何内容(忽略我安装的第三方软件包)?该应用程序将自动将我的所有路由和URL更改为https?只要你没有使用路由/资产的完整路径(图像/css/js等),并且只使用URI路径,例如/path/to/something
,那么除了您注意到的APP\u URL
之外,不需要做任何更改(我在HTTP下开发,但产品总是HTTPS)。关于资产,如果您也指定了它们的(子)域,您可以删除协议,例如:
,然后使用当前协议(HTTP或HTTPS,无论站点被访问为什么)并按照完美的方式加载。我会等着看是否有人愿意回答。如果我没有得到任何东西,你的就会被接受。非常感谢你完整的答案。现在,这个答案看起来非常适合我。谢谢