我的网站结构有点像下面
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文件。
有什么想法吗?
答案 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
重写不包含.php
,css
,lib
和js
的网址。类似的东西:
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