Laravel 10子域名配置失败求助:路由未生效跳转至主域名
解决Laravel 10子域名路由无效问题
1. 修正域名拼接错误
env('APP_URL') 默认包含 http:// 或 https:// 前缀,直接拼接会生成格式错误的域名(比如 {username}.http://yourdomain.com)。建议在 .env 文件中新增一个不带协议的域名变量:
APP_DOMAIN=yourdomain.com
之后路由里改用这个变量拼接子域名。
2. 修正路由组写法
路由组内部必须定义具体的路由规则,不能直接返回字符串,正确写法示例:
Route::domain('{username}.' . env('APP_DOMAIN'))->group(function () { Route::get('/', function ($username) { return "欢迎访问 {$username} 的子域名"; }); });
3. 本地开发配置Hosts映射
如果是本地测试,需要修改系统Hosts文件,添加子域名与本地IP的映射:
127.0.0.1 yourdomain.com 127.0.0.1 test.yourdomain.com
- Windows路径:
C:\Windows\System32\drivers\etc\hosts - Mac/Linux路径:
/etc/hosts
4. 清除路由缓存
若之前生成过路由缓存,执行命令清除:
php artisan route:clear
额外检查点
- 服务器配置(Nginx/Apache)需支持泛域名解析,以Nginx为例:
server { listen 80; server_name *.yourdomain.com; root /path/to/your/laravel/public; location / { try_files $uri $uri/ /index.php?$query_string; } # 其他Laravel相关配置... }
- 执行
php artisan config:clear清除配置缓存,确保.env中的新配置生效
内容的提问来源于stack exchange,提问作者Swarnadeep
相关产品推荐
相关产品推荐

