【问题标题】:Add baseURL to homepage将 baseURL 添加到主页
【发布时间】:2018-07-18 11:35:46
【问题描述】:

我需要将我网站的徽标图像(位于主菜单的左上角)指向主页。

我使用了我从另一个问题here中找到的以下php代码,但它没有按我预期的那样工作。它会将我重定向到当前页面,而不会将我指向主页。

<?php echo "http://" . $_SERVER['SERVER_NAME'] . $_SERVER['REQUEST_URI']; ?>

我正在本地开发,安装了 XAMPP,php 7.2 和 wordpress 上的 apache

【问题讨论】:

    标签: php url redirect


    【解决方案1】:

    如果您的网站在根目录下,您只需添加/

    如果你想使用完整的 URL:

    <?php echo "http://$_SERVER[HTTP_HOST]"; ?>
    

    或者如果你想同时支持 HTTP 和 HTTPS,你可以使用:

    <?php echo (isset($_SERVER['HTTPS']) && $_SERVER['HTTPS'] === 'on' ? "https" : "http") . "://$_SERVER[HTTP_HOST]"; ?>
    

    编辑

    因为您位于子文件夹中,您还应该检索该文件夹名称。

    <?php echo (isset($_SERVER['HTTPS']) && $_SERVER['HTTPS'] === 'on' ? "https" : "http") . "://$_SERVER[HTTP_HOST]/" . basename(dirname($_SERVER['PHP_SELF'])); ?>
    

    我会将它添加到这样的函数中:

    <?php 
    
    function home_url() {
        $scheme = (isset($_SERVER['HTTPS']) && $_SERVER['HTTPS'] === 'on' ? "https" : "http");
        $host = $_SERVER[HTTP_HOST];
        $folder = basename(dirname($_SERVER['PHP_SELF']));
        return "$scheme://$host/$folder";
    }
    
    echo home_url();
    

    【讨论】:

    • 当我使用 它将我重定向到localhost,第二个也这样做。这是为什么?我的项目位置是 htdocs/mysiter
    • 那是因为你在一个子文件夹中。我已经编辑了我的答案。
    • 他不在子文件夹中,他必须在 htdocs 中创建项目才能按名称访问项目,例如 localhost/armin 的路径为“htdocs/armin/” 它会将您重定向到 localhost,因为您在 localhost ,你的电脑是你的主机,你的电脑是本地的,所以是本地主机,你不需要协议,你可以使用 当你把 // 放在链接前面时,它会检查它是 http 还是 https 并且它需要 propper 协议
    • @RonvanderHeijden Edit 您回答的部分完成了这项工作。我在我的 wprdpress 主题中使用了该功能,现在它工作正常。我还有一个担心。这会在任何地方工作吗?我的意思是,如果我更改 peoject 文件夹位置,或者将其放入网络托管服务器等......?
    猜你喜欢
    • 2017-07-20
    • 1970-01-01
    • 2020-06-17
    • 1970-01-01
    • 2021-07-15
    • 2018-10-21
    • 2013-03-20
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多