调用方法时出现 404 Codeigniter 页面错误
404 Codeigniter page error when calling method
我的代码点火器有问题,我有以下代码 (user_stats.php):
<?php if (!defined('BASEPATH')) exit('No direct script access allowed');
class User_stats extends MX_Controller
{
function __construct() {
parent::__construct();
}
function user_stats() {
echo "Hello";
}
function detect_location() {
echo "World";
}
}
如果我通过 url 调用方法,例如http://test/user_stats/detect_location I get the output World, but when I load up http://test/user_stats/user_stats I get an error 404 page. I checked the logs and for some reason the the request was for http://test/user_stats/index (when trying to load http://test/user_stats/user_stats)。我的 htaccess 文件包含以下代码:
RewriteEngine on
RewriteCond !^(index\.php|resources|robots\.txt)
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule ^(.*)$ index.php/ [L,QSA]
配置文件配置为:
$config['index_page'] = '';
$config['uri_protocol'] = 'AUTO';
$config['url_suffix'] = '';
如能帮助解决此问题,我们将不胜感激。
谢谢
基本上你的 Class 名称是 User_stats
和函数名称是 user_stats
一样。具有相同 class 名称的函数名称被视为构造函数。如果你删除你的 function __construct()
并点击这个 url http://test/user_stats/detect_location
你将得到输出
Hello World
这种情况 user_stats 是您的构造函数。
其实你有两个构造函数,如果你保持function __construct()
,function user_stats
就没用了。对于具有相同参数的 class 不能有两个构造函数。
将函数名user_stats()
更改为index()
并打开config/routes.php
文件
并在其中添加这一行:
$route['user_stats/user_stats'] = "user_stats/index";
注意:正如@oldlearner 所说,该函数就像一个构造函数,在 php5 中已弃用。
我的代码点火器有问题,我有以下代码 (user_stats.php):
<?php if (!defined('BASEPATH')) exit('No direct script access allowed');
class User_stats extends MX_Controller
{
function __construct() {
parent::__construct();
}
function user_stats() {
echo "Hello";
}
function detect_location() {
echo "World";
}
}
如果我通过 url 调用方法,例如http://test/user_stats/detect_location I get the output World, but when I load up http://test/user_stats/user_stats I get an error 404 page. I checked the logs and for some reason the the request was for http://test/user_stats/index (when trying to load http://test/user_stats/user_stats)。我的 htaccess 文件包含以下代码:
RewriteEngine on
RewriteCond !^(index\.php|resources|robots\.txt)
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule ^(.*)$ index.php/ [L,QSA]
配置文件配置为:
$config['index_page'] = '';
$config['uri_protocol'] = 'AUTO';
$config['url_suffix'] = '';
如能帮助解决此问题,我们将不胜感激。
谢谢
基本上你的 Class 名称是 User_stats
和函数名称是 user_stats
一样。具有相同 class 名称的函数名称被视为构造函数。如果你删除你的 function __construct()
并点击这个 url http://test/user_stats/detect_location
你将得到输出
Hello World
这种情况 user_stats 是您的构造函数。
其实你有两个构造函数,如果你保持function __construct()
,function user_stats
就没用了。对于具有相同参数的 class 不能有两个构造函数。
将函数名user_stats()
更改为index()
并打开config/routes.php
文件
并在其中添加这一行:
$route['user_stats/user_stats'] = "user_stats/index";
注意:正如@oldlearner 所说,该函数就像一个构造函数,在 php5 中已弃用。