在 ExpressionEngine 模板中访问 HTTP 主机名的最简单方法是什么(无需在模板中使用 PHP)。
是否已经创建了一个插件来执行此操作,或者我应该使用某种全局变量?
如果还有一种方法可以访问 ExpressionEngine 模板中的其他 HTTP 服务器变量,则可以加分。
在 ExpressionEngine 模板中访问 HTTP 主机名的最简单方法是什么(无需在模板中使用 PHP)。
是否已经创建了一个插件来执行此操作,或者我应该使用某种全局变量?
如果还有一种方法可以访问 ExpressionEngine 模板中的其他 HTTP 服务器变量,则可以加分。
您可以将主机名设置为全局变量并使用它。您可以使用 php 在配置文件中设置全局变量,然后您将可以在模板中访问它。
或者你可以使用 {path='site_index'}
$assign_to_config['global_vars']['global_var_name'] = 'Global var value';
仅使用标准全局变量 {site_url} 怎么样?
如果你想分配一个配置变量,那么你可以这样做:
$assign_to_config['global_vars']['gv_hostname'] = $_SERVER['HTTP_HOST'];
然后在您的模板中,您可以通过 {gv_hostname} 调用它,当然这不会在主机名之前添加 http://。
您可以为此使用名为服务器变量的插件 http://devot-ee.com/add-ons/server-variable
{exp:server_var:server var="HTTP_HOST"}
任何其他服务器变量也可用: http: //php.net/manual/en/reserved.variables.server.php
您可以将以下代码添加到 /system/expressionengine/config/config.php 文件中
$assign_to_config['global_vars']['my_http_host'] = $_SERVER['HTTP_HOST'];
然后可以在模板中使用,如下所示:
{my_http_host}
如果你想要协议,即。http 如果不是 https 你可以这样做:
$assign_to_config['global_vars']['my_protocol'] = (isset($_SERVER['HTTPS']) && $_SERVER['HTTPS'] == 'on') ? 'https://' : 'http://';
然后可以在模板中使用,如下所示:
{我的协议}