CodeIgniter RESTful可脱机工作,但不能在线工作

时间:2014-12-29 18:03:55

标签: php apache .htaccess codeigniter rest

我认为我遇到此问题的原因是.htaccess(虽然它们在离线和在线方面都是相同的)。

http://localhost/myProject/api/webservice/getUsers -> Works
http://myProjectDomain.com/api/webservice/getUsers -> Doesn't work, error: 500 Internal Error
来自根文件夹的

.htaccess:

Options -Indexes
Options +FollowSymLinks

# Set the default file for indexes
DirectoryIndex index.php

<IfModule mod_rewrite.c>

    # activate URL rewriting
    RewriteEngine on

    # do not rewrite links to the documentation, assets and public files
    RewriteCond $1 !^(index\.php|public|images|robots\.txt)

    # do not rewrite for php files in the document root, robots.txt or the maintenance page
    RewriteCond $1 !^([^\..]+\.php|robots\.txt)

    # but rewrite everything else
    RewriteRule ^(.*)$ index.php?/$1 [L]
</IfModule>

<IfModule !mod_rewrite.c>

    # If we don't have mod_rewrite installed, all 404's
    # can be sent to index.php, and everything works as normal.

    ErrorDocument 404 index.php

</IfModule> 

在我看来,我可能需要创建另一条规则?类似的东西:

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

1 个答案:

答案 0 :(得分:0)

<强>解决。

我在这个主题中找到了答案:malformed header from script. Bad header=1: index.php

几周前,我不得不更改我的REST_controller.php文件,以便从网络服务接收大量数据。虽然我发现了一个小错误,但当数据量太大时,它无法完全检索到它。

例如,格式为JSON。

[{data: {'values': '1'}, {'values': '2'}]

现在这个大规模只检索我:

[{data: {'values': '1'}, {'values': '2'

是的,它错过了}],因此JSON格式并不好。 所以我改变了一些代码,来自:

header('Content-Length: ' . strlen($output));

为:

header('Content-Length: ' . strlen($output) + 15);

但是我犯了一个基本错误,如果我用打字语言编码,我就不会这样做。 这些值实际上并没有相加,而是连接在一起。解决方案:

header('Content-Length: ' . (strlen($output) + 15));