如果菜单位于不同的文件夹中,如何创建网站的BASE URL


How create BASE URL of website if the menu are in different folder?

我知道这样做很愚蠢,但我的情况是我在不同的文件夹中创建菜单。我尝试为菜单创建基本网址。

function getBaseUrl() 
{
     $currentPath = $_SERVER['PHP_SELF'];
    $pathInfo = pathinfo($currentPath);
    $hostName = $_SERVER['HTTP_HOST']; 
    $protocol = strtolower(substr($_SERVER["SERVER_PROTOCOL"],0,5))=='https://'?'https://':'http://';
    return $protocol.$hostName.$pathInfo['dirname']."/";
}

使用基本网址,如 <?php echo getBaseUrl(); ?> .我的问题是:

让我有菜单 aaa bbb ccc ddd.菜单aaa页面在folder1/page1.php里面

bbb菜单的页面位于folder2/page2.php 内。我不能从一个菜单转到aaa菜单bbb菜单。

有人有想法吗?请建议

您可以使用按

标签索引的页面列表创建一个数组:

function getBaseUrl($naviItem) 
{
    var $navigation = array( 
       'aaa_menu' => '/folder1/page1.php', 
       'bbb_menu' => '/folder2/page2.php'
    );
    //$currentPath = $_SERVER['PHP_SELF'];
    //$pathInfo = pathinfo($currentPath);
    $hostName = $_SERVER['HTTP_HOST']; 
    $protocol = strtolower(substr($_SERVER["SERVER_PROTOCOL"],0,5))=='https://'?'https://':'http://';
    // return the path relative to the passed navitem
    return $protocol.$hostName.$navigation[$naviItem];
}

然后在 HTML 中,相对于要实现 baseURL 的导航项传递此标签:

<a href="<?php echo getBaseUrl('aaa_menu'); ?>">aaa</a>
<a href="<?php echo getBaseUrl('bbb_menu'); ?>">bbb</a>

你好什雷斯塔,这很容易,只需定义常量并使用

define('DOMAIN_URL', 'http://' . $_SERVER['SERVER_NAME'] . '/projectname/');

设置链接时 -

<a href="<?php echo DOMAIN_URL; ?>/folder1/page1.php">aaa</a> 
<a href="<?php echo DOMAIN_URL ?>/folder2/page2.php">bbb</a>