如何在ExpressionEngine模板中访问主机名

时间:2012-10-27 00:52:58

标签: expressionengine

在ExpressionEngine模板中访问HTTP主机名的最简单方法是什么(没有在模板中使用PHP)。

是否已经创建了一个插件来执行此操作,还是应该使用某种全局变量?

如果有办法在ExpressionEngine模板中访问其他HTTP服务器变量,也可以获得奖励。

4 个答案:

答案 0 :(得分:8)

您可以将主机名设置为全局变量并使用它。您可以使用php在配置文件中设置全局变量,然后您将可以在模板中访问它。

或者您可以使用{path ='site_index'}

$assign_to_config['global_vars']['global_var_name'] = 'Global var value';

答案 1 :(得分:3)

如何使用{site_url}这是一个标准的全局变量?

如果你想分配一个配置变量,你可以这样做:

$assign_to_config['global_vars']['gv_hostname'] = $_SERVER['HTTP_HOST']; 

然后在您的模板中,您可以通过{gv_hostname}调用它,当然这不会在主机名之前添加http://。

答案 2 :(得分:3)

您可以为此名为服务器变量使用插件 http://devot-ee.com/add-ons/server-variable

{exp:server_var:server var="HTTP_HOST"}

任何其他服务器变量也可用:http://php.net/manual/en/reserved.variables.server.php

答案 3 :(得分:1)

您可以将以下代码添加到/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://';

然后可以在模板中使用它:

{my_protocol}

以下是PHP Reserved Server Variables

的列表