Php 从不同路径深度重定向

Php 从不同路径深度重定向,php,redirect,Php,Redirect,在我的项目中,PHP中的一个文件检查身份验证 $PROJECT_ROOT/lib/functions.php: <?php check_authentication(); function check_authentication(){ if (session_status() == PHP_SESSION_NONE) { session_start(); } if(defined('authorized') &a

在我的项目中,PHP中的一个文件检查身份验证

$PROJECT_ROOT/lib/functions.php:

<?php
check_authentication();

function check_authentication(){
        if (session_status() == PHP_SESSION_NONE) {
            session_start();
        }

        if(defined('authorized') && authorized){
                if(!(isset($_SESSION['admin'] && $_SESSION['admin']))){
                    header('Location: login.php');
                    exit(0);
                }
        }
}
define(PROJECT_URL,
       '//'.$_SERVER['HTTP_HOST'].
       substr(dirname(__DIR__), strlen($_SERVER['DOCUMENT_ROOT']))
);

问题在于$PROJECT\u根URL无法通过PHP轻松引用

所需的是创建相对于$\u服务器['DOCUMENT\u ROOT'的项目URL抽象

这可以在$PROJECT_ROOT/lib/functions.php中实现:

<?php
check_authentication();

function check_authentication(){
        if (session_status() == PHP_SESSION_NONE) {
            session_start();
        }

        if(defined('authorized') && authorized){
                if(!(isset($_SESSION['admin'] && $_SESSION['admin']))){
                    header('Location: login.php');
                    exit(0);
                }
        }
}
define(PROJECT_URL,
       '//'.$_SERVER['HTTP_HOST'].
       substr(dirname(__DIR__), strlen($_SERVER['DOCUMENT_ROOT']))
);
起始“/”创建http/https协议抽象

上述URL由以下元素构成:

echo __DIR__;  // /var/www/html/project_x/service/lib (current script directory) 
echo '<br>';
echo dirname(__DIR__); // /var/www/html/project_x/service (the data model root directory in this case)
echo '<br>';
echo $_SERVER['DOCUMENT_ROOT']; // /var/www/html (prefix that need to be removed)
echo '<br>';
echo PROJECT_URL; // //localhost/project_x/service

问题是$PROJECT_根URL不能通过PHP轻松引用

所需的是创建相对于$\u服务器['DOCUMENT\u ROOT'的项目URL抽象

这可以在$PROJECT_ROOT/lib/functions.php中实现:

<?php
check_authentication();

function check_authentication(){
        if (session_status() == PHP_SESSION_NONE) {
            session_start();
        }

        if(defined('authorized') && authorized){
                if(!(isset($_SESSION['admin'] && $_SESSION['admin']))){
                    header('Location: login.php');
                    exit(0);
                }
        }
}
define(PROJECT_URL,
       '//'.$_SERVER['HTTP_HOST'].
       substr(dirname(__DIR__), strlen($_SERVER['DOCUMENT_ROOT']))
);
起始“/”创建http/https协议抽象

上述URL由以下元素构成:

echo __DIR__;  // /var/www/html/project_x/service/lib (current script directory) 
echo '<br>';
echo dirname(__DIR__); // /var/www/html/project_x/service (the data model root directory in this case)
echo '<br>';
echo $_SERVER['DOCUMENT_ROOT']; // /var/www/html (prefix that need to be removed)
echo '<br>';
echo PROJECT_URL; // //localhost/project_x/service