對于php$_SERVER這個全局變量 ,里面有很多的參數,慢慢的熟悉
結果:
$_SERVER['QUERY_STRING'] = "";
$_SERVER['REQUEST_URI'] = "/aaa/";
$_SERVER['SCRIPT_NAME'] = "/aaa/index.php";
$_SERVER['PHP_SELF'] = "/aaa/index.php";
2,http://localhost/aaa/?p=222 (附帶查詢)
結果:
$_SERVER['QUERY_STRING'] = "p=222";
$_SERVER['REQUEST_URI'] = "/aaa/?p=222";
$_SERVER['SCRIPT_NAME'] = "/aaa/index.php";
$_SERVER['PHP_SELF'] = "/aaa/index.php";
3,http://localhost/aaa/index.php?p=222&q=333
結果:
$_SERVER['QUERY_STRING'] = "p=222&q=333";
$_SERVER['REQUEST_URI'] = "/aaa/index.php?p=222&q=333";
$_SERVER['SCRIPT_NAME'] = "/aaa/index.php";
$_SERVER['PHP_SELF'] = "/aaa/index.php";
由實例可知:
$_SERVER["QUERY_STRING"] 獲取查詢 語句,實例中可知,獲取的是?后面的值
$_SERVER["REQUEST_URI"] 獲取 http://localhost 后面的值,包括/
$_SERVER["SCRIPT_NAME"] 獲取當前腳本的路徑,如:index.php
$_SERVER["PHP_SELF"] 當前正在執行腳本的文件名
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則增加了支持;
$_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下的值為空
例如:
當前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"] =”
當前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"] =”
文章列表