我有一个简单的网络托管平台。我在/ var / www / html上托管Codeigniter应用程序 这意味着这是文件结构:
html
|-application
|---controllers
|---models
|---views
|---config
|-public
|-system
|-index.php
|-.htacess
我的.htaccess文件如下所示:
<IfModule mod_rewrite.c>
RewriteEngine on
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule ^(.*)$ index.php/$1 [L]
</IfModule>
在我的config.php文件中,我有默认的根视图控制器:
$config['base_url'] = 'http://www.example.com/';
在我的routes.php文件中,我有
$route['default_controller'] = "home"
所以,当我在浏览器中打开www.mysite.com时,我会自动获得home / index。但是,当我尝试任何其他网址,如
www.example.com/home
www.example.com/home/index
www.example.com/admin
我收到404错误。这也是值得注意的是,这个文件夹在我尝试的本地机器和另一台远程服务器上运行良好。
更准确地说,当我尝试www.example.com/home时,我收到此错误
Not Found
The requested URL /home was not found on this server.
我的家庭控制器看起来像这样。
class Home extends CI_Controller{
public function __construct() {
parent::__construct();
}
public function index(){
$this->load->view('home_view');
}
public function someFunction(){
echo 'In some function';
}
}
我不知道如果这有帮助,但将index.php添加到URL似乎打开了预期的页面。所以
www.example.com/controller/function (DOES NOT WORK)
www.example.com/index.php/controller/function (WORKS)
请帮忙吗?
答案 0 :(得分:-1)
您需要在路径文件中指定不同网址的操作。 与site.com/search一样,请在$ route [&#39; default_controller&#39;] =&#34; home&#34;,
之前添加$route['search'] = "home/search"
这意味着,您将在家庭控制器中创建一个功能搜索,它将加载指定网址的视图文件。