您好,我是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
答案 0 :(得分:278)
只需在.htaccess文件中添加index.php之后的?符号:
RewriteEngine on
RewriteBase /
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule ^(.*)$ index.php?/$1 [L]
它会起作用!
答案 1 :(得分:53)
.htaccess
,我自己正在工作
RewriteRule ^(.*)$ index.php/$1 [L]
到
RewriteRule ^(.*)$ index.php?/$1 [QSA,L]
答案 2 :(得分:37)
我在这里找到了这个问题的答案.....问题是托管服务器......我感谢所有尝试过的人......希望这会有助于其他人
答案 3 :(得分:17)
我刚刚更改了 .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>