FastAdmin中的域名变量主要用于系统配置和动态URL生成,以下是关键知识点和扩展内容:
1. 核心域名变量
- `config('site.domain')`:存储主域名配置,通常在`application/extra/site.php`中定义,用于API接口、静态资源等全局调用。
- `request()->domain()`:动态获取当前请求的协议和域名(如`https://example.com`),包含端口号。
2. 子域名处理
- 通过路由配置`app/route.php`使用`subdomain`参数实现多租户,例如:
php
Route::domain('admin', function() { ... }); // 匹配admin子域名
3. 环境变量集成
- `.env`文件中可定义`APP_DOMAIN`变量,通过`Env::get('app.domain')`调用,实现开发/生产环境切换。
4. 静态资源域名分离
- 在`view`层使用`config('site.cdn_domain')`指定CDN域名,优化资源加载:
html
5. 多域名会话管理
- 跨域名共享Session需配置`config/session.php`中的`domain`参数为顶级域名(如`.example.com`)。
6. 安全注意事项
- 动态拼接域名时需过滤用户输入,避免拼接漏洞导致XSS或SSRF攻击。
- HTTPS强制跳转可在中间件中通过`$request->setTrustedProxies()`实现。
7. 高级应用场景
- 电商系统中可使用`shop_domain`、`api_domain`等分模块配置,通过事件监听器动态切换。
- 结合Nginx的`$host`变量实现域名条件转发。
8. 调试技巧
- 使用`dd(request()->host())`快速查看当前请求的host头,排查路由匹配问题。
域名变量在负载均衡、国际化和微服务架构中还有更复杂的应用,建议结合ThinkPHP的原生域名解析逻辑进行深度优化。
查看详情
查看详情