使用php重定向到相同的路径减去文件名

时间:2015-09-07 17:33:29

标签: php apache

所以我想将目录中的页面(例如auth/login.php)重定向到auth/的另一个页面。该页面实际上称为auth/index.php,但我不希望它显示给客户端。如何使用此PHP代码执行此操作:

header("Location: /auth/");

但是,我希望文件名是相对的,例如../代替硬编码为auth。这有可能,怎么样?

1 个答案:

答案 0 :(得分:1)

要将用户定向到当前目录,您应该从$_SERVER['SCRIPT_NAME']中提取脚本的目录,然后将其与实际的HTTP请求($_SERVER['REQUEST_URI'])进行比较。如果它们不相同 - 重定向到当前目录。如果它们相同 - 您应该开始实际的脚本:

<?php

$currentScript = $_SERVER['SCRIPT_NAME'];
$pathInfo = pathinfo($currentScript);
$currentDir = $pathInfo['dirname'].'/';

if ($currentDir != $_SERVER['REQUEST_URI'])
{
  header('Location: '.$currentDir);
  return ;
}

// Here be real site data