WordPress经过301重定向实现非首先域(非www)跳转向原本是一个很简单事情,因为没弄清楚$_SERVER['HTTP_X_REWRITE_URL'] 和$_SERVER['REQUEST_URI']的区别致使了循环重定向问题。
如今来具体研究下$_SERVER['HTTP_X_REWRITE_URL'] 和$_SERVER['REQUEST_URI']的区别
首先要纠正一部分的观点就是IIS+PHP不支持$_SERVER['REQUEST_URI']
不是,不支持是PHP Version 版本的问题,php4.4.0不支持 $_SERVER['REQUEST_URI'],php5.2.5则增长了支持;php
$_SERVER['REQUEST_URI']经常使用来获当前URL
例如:http://www.hujuntao.com/index.php?p=3
$_SERVER['REQUEST_URI']得到的就是/index.php?p=3这部分
。
$_SERVER["HTTP_X_REWRITE_URL"]则在IIS下得到的是当前URL,在apache下的值为空html
例如:
当前URL:http://www.hujuntao.com/
IIS环境下:
$_SERVER['REQUEST_URI'] = /index.php
$_SERVER["HTTP_X_REWRITE_URL"] =/
apache环境下:
$_SERVER['REQUEST_URI'] = /
$_SERVER["HTTP_X_REWRITE_URL"] =”web
当前URL:http://www.hujuntao.com/index.php
IIS环境下:
$_SERVER['REQUEST_URI'] = /index.php
$_SERVER["HTTP_X_REWRITE_URL"] =/index.php
apache环境下:
$_SERVER['REQUEST_URI'] = /index.php
$_SERVER["HTTP_X_REWRITE_URL"] =”apache