当我使用url作为
mysite.com/index.php/user/user
被调用。
但是,当我在routes.php
中添加以下行以便可以使用自定义网址访问该函数时。
它使我出错。 404 Not Found
我想使用url作为mysite.com/user
$route['user']['get'] = 'user/user';
user.php
位于控制器目录中
<?php
use Restserver\Libraries\REST_Controller;
defined('BASEPATH') OR exit('No direct script access allowed');
require APPPATH . 'libraries/REST_Controller.php';
require APPPATH . 'libraries/Format.php';
class User extends REST_Controller {
function __construct()
{
// Construct the parent class
parent::__construct();
}
public function user_get(){
$this->set_response("request recieved", REST_Controller::HTTP_OK); // OK (200) being the HTTP response code
}
}
[第二个问题]
如何建立访问控制器目录中某些文件夹中控制器的路径。
假设controllers/api/v1/
目录中存在一个控制器文件,文件名为user.php
注意: 我已经尝试了其他帖子上用户提供的所有解决方案,但问题尚未解决。
路由现在可以正常工作了。我认为问题是,我打电话给mysite.com/user,我应该打电话给mysite.com/index.php/user
位于URL中的index.php的第二个问题也已解决。
我正在.htaccess
文件夹中的Application
文件中进行更改。
我在.htaccess
中创建了一个root folder
文件,然后在下面提到的代码行中添加了
<IfModule mod_rewrite.c>
RewriteEngine On
RewriteBase /
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule ^(.*)$ index.php?/$1 [L]
</IfModule>
答案 0 :(得分:0)
您已将路线设置为
$route['user']['get'] = 'user/user';
这将定向到用户控制器和用户方法。但是在您的控制器中,您有一个名为user_get
的方法。
因此,这里最简单的解决方法是更改您的路线以指向正确的方法。 注意:您没有称为“用户”的方法,为什么在路由中使用该方法?
所以这个...
$route['user']['get'] = 'user/user'; // the user method does not exist
将成为...
$route['user']['get'] = 'user/user_get'; // the user_get method does exist
更新:要从您的URL中删除index.php,您的.htaccess文件可能是
RewriteEngine on
RewriteCond $1 !^(index\.php|resources|robots\.txt)
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule ^(.*)$ index.php/$1 [L,QSA]
并确保您在 applications / config / config.php
中添加base_url$config['base_url'] = 'http://example.com'; // Change to your sites URL
$config['index_page'] = ''; // remove index.php