|
以前:
/system/config/config.php里面
$config['uri_protocol'] = "AUTO";
意外情况:
http://WEBSITE.URL/?some=lskdj
出错了吧
需求:
不让它报错,不要它理问号后面的内容
解决:
搜索得到可以利用 修改$config['uri_protocol']为PATH_INFO解决
我修改后 果然解决,CI不理问号后面这些内容了
上传到虚拟主机还是不行,一看是IIS 打印$_SERVER 果然跟apache的不一样
琢磨着手动给IIS加这么个参数,于是乎
在/index.php中 适当位置 添加如此代码:
无非是判断是IIS服务器就 从QUERY_STRING变量去掉?以及以后的内容作为PATH_INFO
PHP复制代码 /*
| hand-edit $_SERVER['PATH_INFO'] for IIS
*/
if(isset($_SERVER['SERVER_SOFTWARE']) AND preg_match('/IIS/',$_SERVER['SERVER_SOFTWARE'])){
$_SERVER['PATH_INFO'] = preg_replace('/\?.*/','',$_SERVER['QUERY_STRING']);
} 复制代码
PS:适当位置是什么位置?-》所有的 require_once 上面
上传后倒是可以了,但是我对CGI规范不熟悉,写的时候看到$_SERVER['QUERY_STRING'] 这个变量合适就拿过来用了,也不知道'PATH_INFO'从这变量演化而来可不可靠,
发出来 请众朋友说说看。 |
|