Codeigniter - 未指定输入文件

时间:2011-05-25 01:56:26

标签: codeigniter php

您好,我是Codeigniter的初学者,我看到了CI教程,只是想做一件简单的事情。我下载了CI并将此文件添加到控制器目录,但它不起作用。

<?php

class site extends CI_Controller
{
    public function index()
    {
        echo "Hello World";
    }

    function dosomething()
    {
        echo "Do Something";
    }   
}    
?>

当我尝试使用http://..../index.php/site访问它时,我得到输出...“没有指定输入文件”....顺便说一句,我将文件命名为site.php

5 个答案:

答案 0 :(得分:278)

只需在.htaccess文件中添加index.php之后的符号:

RewriteEngine on
RewriteBase /
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule ^(.*)$ index.php?/$1 [L]

它会起作用!

答案 1 :(得分:53)

主持它的Godaddy似乎固定在.htaccess,我自己正在工作

RewriteRule ^(.*)$ index.php/$1 [L]

RewriteRule ^(.*)$ index.php?/$1 [QSA,L]

答案 2 :(得分:37)

我在这里找到了这个问题的答案.....问题是托管服务器......我感谢所有尝试过的人......希望这会有助于其他人

Godaddy Installation Tips

答案 3 :(得分:17)

RewriteEngine,CodeIgniter应用程序的.htaccess文件中的DirectoryIndex

我刚刚更改了 .htaccess 文件内容,如下面的links回答所示。并尝试刷新页面(它没有工作,并且无法找到对我的控制器的请求)它工作。

然后,由于我的疑问,我撤消了对 public_html 文件夹中的 .htaccess 所做的更改,恢复原来的 .htaccess 内容。所以它现在如下(原来是这样):

DirectoryIndex index.php
RewriteEngine on
RewriteCond $1 !^(index\.php|images|css|js|robots\.txt|favicon\.ico)
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule ^(.*)$ ./index.php?/$1 [L,QSA]

现在它也有效。

提示:似乎在重写规则尚未在服务器上下文中明确设置之前。

我的文件结构如下:

/
|- gheapp
|    |- application
|    L- system
|
|- public_html
|    |- .htaccess
|    L- index.php

index.php我已经设置了以下系统和应用程序的路径:

$system_path = '../gheapp/system';
$application_folder = '../gheapp/application';

注意:通过这样做,我们的应用程序源代码首先对公众隐藏。

如果你们发现我的答案有任何问题,请评论并重新纠正我! 希望初学者会觉得这个答案很有帮助。

谢谢!

答案 4 :(得分:0)

我的网站托管在MochaHost上,我很难设置.htaccess文件,以便可以从URL中删除index.php。但是,经过一些谷歌搜索后,我将这个线程的答案与其他答案结合了起来。我最终的.htaccess文件具有以下内容:

<IfModule mod_rewrite.c>
    # Turn on URL rewriting
    RewriteEngine On

    # If your website begins from a folder e.g localhost/my_project then 
    # you have to change it to: RewriteBase /my_project/
    # If your site begins from the root e.g. example.local/ then
    # let it as it is
    RewriteBase /

    # Protect application and system files from being viewed when the index.php is missing
    RewriteCond $1 ^(application|system|private|logs)

    # Rewrite to index.php/access_denied/URL
    RewriteRule ^(.*)$ index.php/access_denied/$1 [PT,L]

    # Allow these directories and files to be displayed directly:
    RewriteCond $1 ^(index\.php|robots\.txt|favicon\.ico|public|app_upload|assets|css|js|images)

    # No rewriting
    RewriteRule ^(.*)$ - [PT,L]

    # Rewrite to index.php/URL
    RewriteRule ^(.*)$ index.php?/$1 [PT,L]
</IfModule>