PHP中的全域變數$_SERVER['PATH_INFO']是一個很有用的參數,眾多的CMS系統在美化自己的URL的時候,都用到了這個參數。
對於下面這個網址:
http://www.test.com/index.php/foo/bar.html?c=index&m=search
我們可以得到 $_SERVER['PATH_INFO'] = ‘/foo/bar.html’
而此時 $_SERVER['QUERY_STRING'] = 'c=index&m=search';
通常,我們最初開始PHP程式編寫的時候,都會使用諸如: http://www.test.com/index.php?c=search&m=main 這樣的URL,這種URL不僅看起來非常奇怪,而且對於搜尋引擎也是非常不友好的。很多搜尋引擎收錄的時候,都會忽略Query String之後的內容,google雖然不會忽略Query String,但是對於其他不含Query String的頁面,會給于比較高的PR值。
<?php
echo $_SERVER['REQUEST_URI']
?>
本地測試地址:http://localhost/a.php 得到結果:/a.php
測試地址二:http://localhost/a.php?id=123 得到結果:/a.php?id=123
測試地址三:http://localhost/a.php/123.html 得到結果:/a.php/123.html
即$_SERVER['REQUEST_URI']基本得到的是位址中/後的所有內容
將a.php代碼改為如下:
<?php
echo $_SERVER['PATH_INFO']
?>
本地測試地址:http://localhost/a.php 得不到任何結果,很鬱悶,不懂什麼意思;
測試地址二:http://localhost/a.php?id=123 同樣得不到任何結果,更鬱悶,因為不懂,所以確實不曉得這個函數什麼意思,感覺挺不舒服的。正當準備放棄繼續baidu時,無意中做了下面的測試,挺幸運
測試地址三:http://localhost/a.php/123.html 得到結果/123.html再在後面加東西,
測試地址四:http://localhost/a.php/123.html?id=2222 結果為:/123.html
什麼意思自己看就應該明白了。是不是還有我沒測試到的作用,不得而知了。希望對各位有用。
本文轉自
http://hi.baidu.com/flyrat/item/44623a365c656ff42784f496
沒有留言:
張貼留言