在TYPO3中如何从后台获取对应页面的前台访问URL?
TYPO3后台获取页面对应前台美化URL的实现方法
原生功能实现(无需开发)
- 前置要求:站点已完成URL美化配置(核心路由增强或第三方URL重写扩展),且站点管理中已正确绑定前台访问域名
- 操作步骤:
- 在后台打开目标页面的编辑页,点击顶部工具栏的预览按钮,跳转的新页面地址即为所需的前台美化URL
- 也可在页面树右键点击目标页面,选择「查看」选项,复制打开的页面地址即可
代码层面调用(自定义扩展/后端模块场景)
通过TYPO3核心的SiteMatcher和路由类可以直接生成指定页面ID对应的绝对前台URL,示例代码如下:
use TYPO3\CMS\Core\Utility\GeneralUtility; use TYPO3\CMS\Core\Routing\SiteMatcher; use TYPO3\CMS\Core\Routing\RouterInterface; // 传入后台URL中的页面ID参数 $targetPageId = 22243; $siteMatcher = GeneralUtility::makeInstance(SiteMatcher::class); $targetSite = $siteMatcher->matchByPageId($targetPageId); $router = $targetSite->getRouter(); // 生成绝对路径的前台美化URL $frontUrl = $router->generateUri($targetPageId, [], '', RouterInterface::ABSOLUTE_URL);
注意:生成前需确认目标页面状态为已发布,访问权限配置正确,否则生成的URL可能仍携带
id参数或无法正常访问。
内容的提问来源于stack exchange,提问作者observable.object
相关产品推荐
相关产品推荐

