0

我的网站结构有点如下所示

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 的东西。

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

有任何想法吗?

4

2 回答 2

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

请先阅读并完成教程,然后再继续。具体来说,静态页面部分将帮助您实现目标。

您必须转换您当前的 PHP 文件以遵循 CodeIgniter 的流程

于 2013-10-14T16:35:33.833 回答
0

我认为您可以用来重写.htaccess不包含.php,css和. 就像是:libjs

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

于 2013-10-14T17:30:47.140 回答