【发布时间】:2014-10-10 09:21:47
【问题描述】:
我有一个简单的网络托管平台。我在 /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。但是当我尝试任何其他 URL 时,例如
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)
有什么帮助吗?
【问题讨论】:
-
请添加您的Controller的更多代码,以便我们看到更多信息。
-
它是一个非常简单的控制器。我已经添加了代码。请参阅编辑。
-
你有没有试过在 RewriteEngine on 之后添加 RewriteBase / ?
-
您确定将上传的 .htaccess 提供给服务器吗?它是可读的吗? Web 服务器的错误日志说明了什么?
-
是的,它可读并上传到服务器上。没有与此问题相关的最新错误日志。
标签: php codeigniter web codeigniter-url