当虚拟主机下获取不到$_SERVER['REQUEST_URI']时,的解决方案

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了当虚拟主机下获取不到$_SERVER['REQUEST_URI']时,的解决方案相关的知识,希望对你有一定的参考价值。

由于虚拟主机不能随意更换服务器,所以当获取不到$_SERVER[‘REQUEST_URI‘]时可通过代码实现,在项目入口文件中定义

if (isset($_SERVER[‘HTTP_X_REWRITE_URL‘])) { 
    // 先检查一下,这样IIS会被捕获。
    $_SERVER[‘REQUEST_URI‘] = $_SERVER[‘HTTP_X_REWRITE_URL‘]; 
  } elseif (isset($_SERVER[‘REDIRECT_URL‘])) { 
    // 检查是否使用mod_rewrite
    $_SERVER[‘REQUEST_URI‘] = $_SERVER[‘REDIRECT_URL‘]; 
  } elseif (isset($_SERVER[‘REQUEST_URI‘])) { 
    $_SERVER[‘REQUEST_URI‘] = $_SERVER[‘REQUEST_URI‘]; 
  } elseif (isset($_SERVER[‘ORIG_PATH_INFO‘])) { 
    // IIS 5.0作为CGI,php
    $_SERVER[‘REQUEST_URI‘] = $_SERVER[‘ORIG_PATH_INFO‘]; 
    if (!empty($_SERVER[‘QUERY_STRING‘])) { 
      $_SERVER[‘REQUEST_URI‘] .= ‘?‘ . $_SERVER[‘QUERY_STRING‘]; 
    } 
  } 

 

以上是关于当虚拟主机下获取不到$_SERVER['REQUEST_URI']时,的解决方案的主要内容,如果未能解决你的问题,请参考以下文章

php 怎么允许某些域名访问和获取访问的域名

get,post怎么获取cookie

PHP中为啥我获取不到$_SERVER["REMOTE_USER"]的值?

php 如何获取服务器的信息

Navicat for MySQL连接不到数据库10061错误 上面说是2003-can't connect to mysql server on 'localhost'

获取文件绝对路径:__FILE__与 $_SERVER[SCRIPT_FILENAME''] 的 区别