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

如何从Pimcore设置获取当前网站URL及CSV导出缩略图链接的域名与协议

Pimcore CSV导出中获取域名/协议及网站URL的正确方式

一、获取域名与协议

分两种场景针对性处理:

  • HTTP请求触发的导出(如后台手动操作):直接从当前请求上下文提取,确保和用户访问的协议/域名完全一致
    use Pimcore\Http\RequestHelper;
    
    $requestHelper = \Pimcore::getContainer()->get(RequestHelper::class);
    $scheme = $requestHelper->getCurrentRequest()->getScheme(); // 返回 http 或 https
    $host = $requestHelper->getCurrentRequest()->getHttpHost(); // 返回含端口的域名(如 example.com:8080)
    
  • 离线/CLI任务触发的导出:无请求上下文时,需读取Pimcore系统预配置参数。先在系统设置 > 网站设置中配置好base_url(完整URL,如 https://example.com),再通过以下代码拆分提取:
    $siteConfig = \Pimcore\Config::getWebsiteConfig();
    $baseUrl = $siteConfig->get('base_url');
    $urlParts = parse_url($baseUrl);
    
    $scheme = $urlParts['scheme'];
    $host = $urlParts['host'];
    

二、获取当前网站的URL

  • 多站点场景:先获取当前请求绑定的站点实例,再提取其基础URL
    $site = \Pimcore\Tool::getCurrentSite();
    if ($site) {
        $siteBaseUrl = $site->getUrl(); // 返回当前站点的完整基础URL,如 https://shop.example.com
    }
    
  • 单站点/全局默认场景:直接读取系统配置的base_url即可,代码同上述离线场景中的$siteConfig->get('base_url')

注意:CSV导出时优先根据触发场景选择对应方式——后台操作选请求上下文,定时/离线任务选系统配置,避免出现协议/域名不匹配的问题。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.17 07:45:20