CodeIgniter - > URI类,更具体; URI-> uri_string()

时间:2012-09-03 12:24:20

标签: codeigniter url

使用CI,当我这样做时:

var_dump($this->uri->uri_string());

var_dump($this->config->item('base_url'));

在控制器all和方法index()中,我得到了这些输出:

string 'dropbox/derrek/shopredux/afsgasg/sasga' (length=36)

string 'http://localhost/dropbox/derrek/shopRedux/' (length=40)

不应该$this->uri->uri_string()输出:afsgasg / sasga? 我做错了什么?

我的routes.php配置

$route['(:any)'] = 'all/index/$1';

$route['default_controller'] = 'all/index';

$route['404_override'] = ''; 

我的.htaccess与index.php在同一个文件夹中

RewriteEngine on

RewriteCond %{REQUEST_FILENAME} !-f

RewriteCond %{REQUEST_FILENAME} !-d

RewriteRule ^(.*)$ index.php/$1 [PT,L]

我的config.php配置

$config['base_url'] = ((isset($_SERVER['HTTPS']) && $_SERVER['HTTPS'] == "on") ? "https" : "http");
$config['base_url'] .= "://".$_SERVER['HTTP_HOST'];

$config['base_url'] .= str_replace(basename($_SERVER['SCRIPT_NAME']),"",$_SERVER['SCRIPT_NAME']);

$config['index_page'] = '';

$config['uri_protocol'] = 'AUTO';

如果需要进一步的信息,我很乐意提供。

1 个答案:

答案 0 :(得分:3)

$this->uri->uri_string()

返回包含完整URI的字符串。例如,如果这是您的完整网址:

http://example.com/index.php/news/local/345 该函数将返回:

新闻/本地/ 345

http://codeigniter.com/user_guide/libraries/uri.html

查看

所以在你的情况下:: url是

http://localhost/dropbox/derrek/shopRedux/#something#

所以它会输出"dropbox/derrek/shopRedux/#something#"