在ExpressionEngine模板中访问HTTP主机名的最简单方法是什么(没有在模板中使用PHP)。
是否已经创建了一个插件来执行此操作,还是应该使用某种全局变量?
如果有办法在ExpressionEngine模板中访问其他HTTP服务器变量,也可以获得奖励。
答案 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}
的列表