codeigniter只有现有网站的页面

时间:2013-10-14 16:15:56

标签: php codeigniter

我的网站结构有点像下面

css/
lib/
js/
index.php
profile.php
products.php
checkout.php
orders.php
invoice.php

我在那里添加了一个codeigniter文件夹......

codeigniter/application/
codeigniter/application/controllers/
codeigniter/application/controllers/mycontroller.php
and other files

我可以通过转到mywebsite.com/codeigniter/mycontroller等来访问CodeIgniter。

但是,我想从URL中删除/codeigniter/部分。所以我想知道是否有可能创建CodeIgniter特定文件的白名单?例如,如果URL是mywebsite.com/mycontroller,那么它会执行CI填充,否则它会查找纯PHP代码文件。我只有几个CI控制器并加载其他非CI文件。

有什么想法吗?

2 个答案:

答案 0 :(得分:0)

短期解决方案

您可以先将index.php文件转换为控制器,然后根据需要为其命名:

<?php
class New_default_controller extends CI_Controller {
    public function index()
    {
        // home page stuff here
    }
}

更改route.php文件并设置默认控制器,以便只需访问您的网站即可触发正确的控制器:

$route['default_controller'] = 'new_default_controller';

应用删除index.php文件

的说明

现在,致电www.mysite.com/profile.php将访问您的根目录profile.php,并致电www.mysite.com/new_future_page将致电您的new_future_page控制器。

如果有任何混淆或者您遇到困难,请告诉我。

最佳解决方案

我想在上面留下评论,但这不可能作为评论显示。

您必须将PHP文件放在controllers文件夹中,如下所示:

codeigniter/application/controllers/profile.php
codeigniter/application/controllers/products.php
codeigniter/application/controllers/checkout.php
codeigniter/application/controllers/orders.php
codeigniter/application/controllers/invoice.php

请继续执行Tutorial,然后再继续。具体而言,Static Pages部分将帮助您实现目标。

您必须将当前的PHP文件转换为遵循CodeIgniter

的流程

答案 1 :(得分:0)

我认为您可以使用.htaccess重写不包含.phpcsslibjs的网址。类似的东西:

RewriteCond %{REQUEST_URI} !^(\.php|css|js|lib)$
RewriteRule (.*) codeigniter/index.php/$1

所以:

http://example.com/css/test.css 

停留

http://example.com/css/test.css

(对css | lib | js的所有请求也一样。你可以在这里附加更多的东西让重写忽略)

http://example.com/controller/method 

成为

http://example.com/codeigniter/index.php/controller/method

您可以在此处测试:http://htaccess.madewithlove.be/

有关重写的更多信息:http://httpd.apache.org/docs/current/mod/mod_rewrite.html