Php 从不同路径深度重定向
在我的项目中,PHP中的一个文件检查身份验证 $PROJECT_ROOT/lib/functions.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
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