CodeIgniter Noob - index.php文件是如何工作的?

时间:2015-01-19 10:11:32

标签: php codeigniter

这是我的views目录:

-    views/
    -    home.php
    -    contact.php
    -    assets/
        -    css/
            -    main.css

config.php :(改变这似乎没有做任何事情)

$config['index_page'] = 'index.php';

routes.php文件:

$route['default_controller'] = "welcome";

当我请求www.example.com/index.php时,默认页面(即home.php)加载并且所有资产都有效。但是,当我请求www.example.com/index.php/welcomewww.example.com/index.php/welcome/index时,页面会加载但资源不起作用。如果我尝试从主页的链接加载页面,也会发生同样的情况。

我不知道index.php的用途。我希望能够只请求www.example.com/welcome/index来调用welcome.php控制器并调用index方法。 application/index.php看起来非常重要,但是我还没有删除它,但我并不是真的想要它。我该怎么办?

感谢。

3 个答案:

答案 0 :(得分:2)

我想你在这里问了3个不同的问题。

首先,index.php是codeigniter应用程序的主要入口点。这非常重要,因为您的所有路线都将通过索引。您可以在配置中更改它的原因是,如果您的设置需要,可以将其重命名为index.php以外的其他内容

其次,只是在这里猜测,但我认为您的资产是使用相对路径加载的;使用base_url()为您的所有资产添加前缀;例如     <?=base_url();?>assets/css/style.css

第三,你需要一个htaccess文件来隐藏index.php(给你www.example.com/welcome),或者如果你没有使用apache服务器则需要等效的文件,如下所示(取自http://www.codeigniter.com/user_guide/general/urls.html

RewriteEngine on
RewriteCond $1 !^(index\.php|images|robots\.txt)
RewriteRule ^(.*)$ /index.php/$1 [L]

答案 1 :(得分:0)

启用模式重写服务器LAMP / WAMP并使用以下代码添加.htaccess文件

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

完成上述过程后,您可以使用不带index.php的网址,例如www.example.com/welcome/index以及您的资产目录www.example.com/assets

答案 2 :(得分:0)

在学习MVC框架如何工作之前,

<强> www.example.com/controller/function

如果您致电www.example.com,则会加载默认controller。您可以在config.php

中进行更改

在函数内部,您可以调用view(您的实际html可查看脚本)。按照https://ellislab.com/codeigniter/user-guide

中的用户指南操作

默认情况下,codeignitor网址将与www.example.com/index.php/controller/function

类似

可以使用.htaccess

删除index.php