Как создать BASE URL сайта, если меню находится в другой папке?

Я знаю, что это глупо, но у меня есть ситуация, когда я создаю меню в разных папках. И я попытался создать baseurl для меню.

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']."/";
}

Используйте базовый URL как <?php echo getBaseUrl(); ?>, Моя проблема:

Пусть у меня есть меню ааа bbb ccc ddd. И страница aaa меню внутри folder1/page1.php

страница из bbb меню внутри folder2/page2.php, Я не могу уйти от aaa меню для bbb меню.

У кого-нибудь есть идея? пожалуйста предложите

5

Решение

Вы можете создать массив со списком страниц, которые вы проиндексировали по метке:

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>
2

Другие решения

Привет Shrestha это очень просто, просто определить константу и использовать

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>
0

По вопросам рекламы [email protected]