CodeIgniter - Live site仅加载默认控制器的索引方法

时间:2012-04-15 21:14:52

标签: php codeigniter

我一直在Windows 7上的XAMPP中开发CodeIgniter应用程序。 该应用程序在本地按预期运行,但在上传时则没有。

默认控制器(ShowStadium)具有以下方法: - 索引() - show()

通过基路径调用时,索引加载正常,但直接调用时不加载:

/ pathToApp / ShowStadium /或/ pathToApp / ShowStadium / index或pathToApp / ShowStadium / show

收到的错误是Codeigniter 404消息。

codeigniter实例当前位于2个子文件夹中。 我的.htaccess文件:

RewriteEngine On

# Put your installation directory here:
# If your URL is www.example.com/, use /
# If your URL is www.example.com/site_folder/, use /site_folder/

RewriteBase /proj/groundtweet/

# Do not enable rewriting for files or directories that exist
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d

# For reuests that are not actual files or directories,
# Rewrite to index.php/URL
RewriteRule ^(.*)$ index.php/$1 [PT,L]

我尝试过的事情:

  • 控制器文件均为小写。
  • 两个安装的基本路径都是正确的。
  • 尝试了各种uri_protocol选项
  • index.php已从路径中删除。

任何帮助都会受到赞赏,因为我无法专门找到这个问题的答案,而且这很可能是简单的。

如果我在这里遗漏了任何细节,请道歉。

感谢。

3 个答案:

答案 0 :(得分:0)

尝试以下代码,将其粘贴到.htaccess文件中。将此文件放在项目文件夹下 如果你的项目文件夹是groundtweet。将文件粘贴到此文件夹下。

RewriteEngine on
RewriteCond $1 !^(index\.php|images|robots\.txt)
RewriteRule ^(.*)$ /proj/groundtweet/index.php/$1 [L]

我希望这会对你有帮助..

答案 1 :(得分:0)

转到application / config / config.php并更改

$config['uri_protocol'] = 'AUTO';

使用以下选项之一(通过此配置注释):

 'PATH_INFO'        Uses the PATH_INFO
 'QUERY_STRING' Uses the QUERY_STRING
 'REQUEST_URI'      Uses the REQUEST_URI
 'ORIG_PATH_INFO'   Uses the ORIG_PATH_INFO

其中一个应该可以正常使用

答案 2 :(得分:0)

感谢所有答案,最后这是一个区分大小写的问题。

控制器文件名是小写的(showstadium.php),但在Pascal case(ShowStadium)中的表单操作中引用。

似乎对于默认的控制器/动作,CodeIgniter可以解决这个问题(我没看过胆量,所以我只是在这里做一个假设)但是当直接调用时,文件名必须与url case匹配 - 在linux服务器上。