嗨,我是Codeigniter的初学者,我看到了一个CI教程,只是想做一件简单的事情.我下载了CI并将此文件添加到控制器目录,但它不起作用.
<?php
class site extends CI_Controller
{
public function index()
{
echo "Hello World";
}
function dosomething()
{
echo "Do Something";
}
}
?>
Run Code Online (Sandbox Code Playgroud)
当我尝试使用http://..../index.php/site访问它时,我得到输出..."没有指定输入文件"....顺便说一句,我将文件命名为site.php
小智 283
只需添加?在.htaccess文件中的index.php之后签名:
RewriteEngine on
RewriteBase /
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule ^(.*)$ index.php?/$1 [L]
Run Code Online (Sandbox Code Playgroud)
它会工作!
小智 54
Godaddy托管它似乎固定.htaccess
,我自己它正在工作
RewriteRule ^(.*)$ index.php/$1 [L]
Run Code Online (Sandbox Code Playgroud)
至
RewriteRule ^(.*)$ index.php?/$1 [QSA,L]
Run Code Online (Sandbox Code Playgroud)
Ran*_*man 17
我刚刚更改了.htaccess文件内容,如下面的链接答案所示.并尝试刷新页面(它没有工作,并找不到我的控制器的请求)它工作.
然后,由于我的怀疑,我撤消了对我的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]
Run Code Online (Sandbox Code Playgroud)
现在它也有效.
提示: 似乎在重写规则尚未在服务器上下文中明确设置之前.
我的文件结构如下:
/
|- gheapp
| |- application
| L- system
|
|- public_html
| |- .htaccess
| L- index.php
Run Code Online (Sandbox Code Playgroud)
在index.php
我已经设置了以下系统和应用程序的路径:
$system_path = '../gheapp/system';
$application_folder = '../gheapp/application';
Run Code Online (Sandbox Code Playgroud)
注意:通过这样做,我们的应用程序源代码首先对公众隐藏.
如果你们发现我的答案有任何问题,请评论并重新纠正我!
希望初学者会发现这个答案很有帮助.
谢谢!