Ngrok提供的HTTPS转发URL无法访问,Laravel环境求解决方案
Ngrok HTTPS转发无法访问Laravel服务的解决方案
针对你遇到的Ngrok HTTPS转发URL无法访问、仅能访问本地HTTP服务的问题,按以下步骤修复:
1. 更新.env配置
把APP_URL改成你的Ngrok HTTPS地址,同时新增强制HTTPS的配置项:
APP_NAME=Laravel APP_ENV=local APP_DEBUG=true APP_URL=https://xxx.ngrok.io # 替换成实际的Ngrok HTTPS链接 APP_FORCE_HTTPS=true
2. 简化AppServiceProvider逻辑
替换app/Providers/AppServiceProvider.php中的代码,只保留处理转发协议的核心逻辑:
<?php namespace App\Providers; use Illuminate\Support\ServiceProvider; use Illuminate\Support\Facades\URL; class AppServiceProvider extends ServiceProvider { public function register(): void { // 留空即可 } public function boot(): void { // 本地环境下强制使用HTTPS if (env('APP_ENV') === 'local' && env('APP_FORCE_HTTPS')) { URL::forceScheme('https'); } } }
3. 确认代理信任配置
Laravel 10+版本
在bootstrap/app.php中确保已信任所有代理:
$middleware->trustProxies(at: '*');
Laravel 9及以下版本
修改app/Http/Middleware/TrustProxies.php:
protected $proxies = '*'; protected $headers = \Illuminate\Http\Request::HEADER_X_FORWARDED_ALL;
4. 检查Ngrok启动命令
确保Ngrok转发到Laravel运行的正确端口(默认是8000):
ngrok http 8000
如果你的Laravel用了自定义端口,替换成对应的端口号。
5. 清除配置缓存
执行命令让新配置生效:
php artisan config:clear php artisan cache:clear
内容的提问来源于stack exchange,提问作者Shoooooosh
相关产品推荐
相关产品推荐

