0

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

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

通过基本路径调用时 index 加载正常,但直接调用时不会加载:

/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 已从路径中删除。

任何帮助都将不胜感激,因为我找不到这个问题的具体答案,而且它可能很简单令人沮丧。

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

谢谢。

4

3 回答 3

0

试试下面的代码,将它粘贴到 .htaccess 文件中。如果您的项目文件夹是groundtweet,则将此文件放在项目文件夹下。将文件粘贴到此文件夹下。

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

我希望这能帮到您..

于 2012-04-16T04:37:52.420 回答
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

其中之一应该适合您

于 2012-04-16T07:02:22.610 回答
0

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

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

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

于 2012-04-16T23:06:37.870 回答