答案:通过$_server变量拼接url是帝国cms获取当前页面完整地址最稳定通用的方法,适用于各类模板,支持http/https协议判断,配合封装函数可提高复用性,推荐在分享、seo等场景使用。

在使用帝国CMS开发网站时,有时需要获取当前页面的完整URL地址,比如用于分享功能、生成二维码、SEO优化等场景。下面介绍几种在模板中获取当前页面完整URL的方法。
代码示例:
。<?php $protocol = isset($_SERVER['HTTPS']) && $_SERVER['HTTPS'] === 'on' ? 'https://' : 'http://'; $host = $_SERVER['HTTP_HOST']; $uri = $_SERVER['REQUEST_URI']; $current_url = $protocol . $host . $uri; echo $current_url; ?>这段代码会自动判断是HTTP还是HTTPS,并拼接出完整的当前页面URL,适用于所有内容页、列表页或封面页模板。
[!--news.url--]e/public/ViewClick?classid=[!--classid--]&id=[!--id--]&down=0但这种方式不是标准的静态化URL。更推荐使用以下写法获取规范URL:
<?php echo $public_r['newsurl'].'index.php?classid='.$navinfor['classid'].'&id='.$navinfor['id']; ?>如果你启用了伪静态或全站静态化,建议还是用第一种方法动态获取真实访问地址。
function getCurrentUrl() {
$protocol = isset($_SERVER['HTTPS']) && $_SERVER['HTTPS'] === 'on' ? 'https://' : 'http://';
return $protocol . $_SERVER['HTTP_HOST'] . $_SERVER['REQUEST_URI'];
}
然后在模板中直接调用:<?php echo getCurrentUrl(); ?>
基本上就这些。最稳定通用的方式是通过 $_SERVER 变量拼接URL,兼容性强,适合各种页面类型。根据你的实际需求选择合适的方法即可。