You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Laravel9通知邮件URL默认HTTP改HTTPS的方法咨询

解决Laravel 9邮件通知URL默认HTTP而非HTTPS的问题

以下是几种可行的解决方式,按需选择:

方法1:修改.env配置文件

直接在项目根目录的.env文件中设置HTTPS格式的APP_URL,部分场景下可额外添加FORCE_HTTPS配置:

APP_URL=https://www.example-domain.com
FORCE_HTTPS=true # 可选,视服务器环境而定

修改完成后,执行命令清除配置缓存使变更生效:

php artisan config:clear

配置生效后,route()函数会默认使用APP_URL指定的HTTPS协议生成链接。

方法2:生成路由时强制指定HTTPS

在调用route()生成链接时,传入第三个参数true,强制生成HTTPS格式的URL:

$notify_data = [
    // ... 其他业务内容
    'url' => route('home', [], true),
];

该方法适合仅需个别路由使用HTTPS的场景。

方法3:全局强制HTTPS(生产环境推荐)

打开app/Providers/AppServiceProvider.php,在boot()方法中添加代码,让URL生成器默认使用HTTPS:

public function boot()
{
    if (config('app.env') === 'production') {
        \Illuminate\Support\Facades\URL::forceScheme('https');
    }
}

此配置会让项目所有生成的URL默认采用HTTPS,适合生产环境全局统一设置。

方法4:确保服务器正确传递HTTPS标识头

如果你的应用部署在反向代理(如Nginx、Apache)后,需要确保服务器将HTTPS协议信息传递给Laravel:

  • Nginx配置:在站点配置的location /块中添加:
proxy_set_header X-Forwarded-Proto $scheme;
  • Apache配置:在.htaccess或站点配置文件中添加:
SetEnvIf X-Forwarded-Proto https HTTPS=on

Laravel会根据X-Forwarded-Proto头自动识别当前协议,生成对应格式的URL。

内容的提问来源于stack exchange,提问作者ImageMagician

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.01 04:01:45