0

我正在探索codeigniter。在应用程序启动时,默认控制器更改为加载我的控制器。

控制器正确加载视图,这很好,所以我猜路由按预期工作,但是当我使用(在同一控制器上的地址栏上手动键入其他方法)相同的 url 模式 /controller/method 我得到 404 错误,要么视图存在。

是否必须更改某些默认路由行为或其他问题?

谢谢

4

3 回答 3

2

我不知道您是否已经从您的 url 模式中删除了 index.php,假设您应该在浏览器地址字段中输入这种情况index.php/controller/method。(如果您按照描述手动输入 url)

另一方面,如果您不想在每个链接上使用 index.php,您可以考虑删除它,更多信息在这里

于 2013-05-16T19:45:46.877 回答
0

这可能是因为上面提到的index.php文件,或者如果您想摆脱 index.php,请在您的应用程序中包含 .htaccess 文件。

 config/config.php - modifiy 
 $config['base_url'] = 'index.php'
 $config['base_url'] = '' // set it to blank

对于 .htaccess 文件,请参阅以下代码

 RewriteEngine on
 RewriteCond $1 !^(index\.php|images|robots\.txt)
 RewriteRule ^(.*)$ /index.php/$1 [L]
于 2013-05-17T05:32:25.007 回答
0

按照这个

根文件夹/.htaccess

index.php在 url中删除

RewriteEngine On
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule ^(.*)$ index.php/$1 [L]

设置基本网址

root_folder/application/config/config.php

| to $_SERVER['SERVER_ADDR'] if available, or localhost otherwise.
| The auto-detection mechanism exists only for convenience during
| development and MUST NOT be used in production!
|
| If you need to allow multiple domains, remember that this file is still
| a PHP script and you can easily do that on your own.
|
*/
$config['base_url'] = 'http://[::1]/my-project/';

在 url 中删除index.php,即使在请求中以表单形式发布

root_folder/application/config/config.php

/*
|--------------------------------------------------------------------------
| Index File
|--------------------------------------------------------------------------
|
| Typically this will be your index.php file, unless you've renamed it to
| something else. If you are using mod_rewrite to remove the page set this
| variable so that it is blank.
|
*/
$config['index_page'] = '';

s et 默认控制器,我的是“家”

root_folder/application/config/routes.php

| controller and method URI segments.
|
| Examples: my-controller/index -> my_controller/index
|       my-controller/my-method -> my_controller/my_method
*/
$route['default_controller'] = 'home';

之后,确保所有控制器文件名都是大写的。 也是一个类名。

当您需要在实时服务器中上传时,这也很重要。

root_folder/application/controllers/Home.php

<?php

/**
 * 
 * 
 * @author Lloric Garcia <emorickfighter@gmail.com>
 */
defined('BASEPATH') OR exit('No direct script access allowed');

class Home extends MY_Controller {

    public function index() {

    }    

}

那么这将是你的网址

http://[::1]/my-project/home


即使在实时服务器中也是我的设置

这一切都来自

https://www.codeigniter.com/userguide3/index.html

于 2016-11-28T05:42:29.260 回答