而用<?
echo $_SERVER['REQUEST_URL'];就可以显示那个include/test.php

解决方案 »

  1.   

    现在我是换了,换了HTTP_HOST了,才显示这个的。
      

  2.   

    HTTP_HOST和SERVER_NAME有何不同?
      

  3.   

    手册上说的很清楚,你的Apache 1.3.31中httpd.conf的ServerName一定设置的是localhost吧,然后你设置了这个虚拟主机。'SERVER_NAME'
    当前运行脚本所在服务器主机的名称。如果该脚本运行在一个虚拟主机上,该名称是由那个虚拟主机所设置的值决定。“HTTP_HOST”
    当前请求的 Host: 头部的内容。
      

  4.   

    楼上的是什么手册?我木有。'SERVER_NAME'看来不能反映当前页面的真实url是吧?
      

  5.   

    'SERVER_NAME' 反应的是执行文件所在的主机的主机名称,估计你在apache里面设置的虚拟主机名就是localhost,所以得到的结果就是你开始说的那样!
      

  6.   

    我看很多文章上,取得当前程序所在页面的url都是用的SERVER_NAME,而不是HTTP_POST。这样可以自由修改的话,岂不就只有用http_post那个才能得到真正的url了?
      

  7.   

    HTTP_HOST是变化的,而SERVER_NAME只有一个。比如,你现在机器上的一个网站http://www.a.com,这个网站也可以通过http://localhost来访问,指向同一个目录。如果你在浏览器用http://localhost访问,则HTTP_HOST的值为localhost,而你用www.a.com访问,HTTP_HOST的值就是www.a.com,你用IP地址访问,HTTP_HOST的值就是IP,SERVER_NAME就不会变化,Apache的httpd.conf中设置为什么,显示的就是什么。
    关于$_SERVER数组,PHP在线手册“保留字列表”——“预定义变量”有详细介绍
      

  8.   

    那么如果做商业程序的话,正常都是一个域名对应着一份程序。
    在程序里面使用HTTP_POST 还是SERVER_NAME呢?