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