【问题标题】:Codeigniter PHP - Redirect giving internal server error on real serverCodeigniter PHP - 在真实服务器上重定向给内部服务器错误
【发布时间】:2015-07-20 15:54:52
【问题描述】:
  • 我有一个默认控制器(页面)将页面重定向到主页 (下面的代码)。
    • 如果我在重定向之前回显某些内容,它将起作用。
    • 如果我在家庭控制器中回显任何内容,则不会显示任何 让我认为它没有到达家庭控制器。
    • 如果我用家庭控制器中的代码替换重定向 工作正常。
    • 代码在本地主机上运行良好,但始终提供内部服务器 服务器出错。
    • 如果我加载模板而不是重定向,它可以正常工作。

添加 错误报告(E_ALL | E_WARNING | E_NOTICE); ini_set('display_errors', TRUE); 不打印任何东西。

无权访问 apache 日志。

页面控制器:

<?php

class Pages extends CI_Controller {

    public function view($page = 'index')
    {

        if ( ! file_exists(APPPATH.'/views/pages/'.$page.'.php'))
        {
            // Whoops, we don't have a page for that!
            show_404();
        }

        redirect('home', 'refresh');

    }
}
?>

得到一个带有以下内容的 .htacces 文件我试图删除其中的内容仍然没有用,但我还是会放在这里:

    RewriteEngine On
    RewriteBase /site/

    RewriteCond %{REQUEST_FILENAME} !/(application/views/templates/*/css|js|images/)/
    RewriteCond %{REQUEST_FILENAME} !-d
    RewriteCond %{REQUEST_FILENAME} !-f
    RewriteRule ^(.*)$ ./index.php/$1 [L,QSA]

Header set Access-Control-Allow-Origin "http://example.com"

我在配置中的基本 url 配置为站点 url,如

$config['base_url'] = 'http://example.com/';

不知道还能做什么,任何帮助将不胜感激。

提前致谢,

【问题讨论】:

  • 您可以尝试将 base_url 设置为空吗?你能确认你的服务器上启用了 mod_rewrite 吗?
  • 您好,感谢您的回复。使用 base_url 作为空不会改变任何东西。关于 mod_rewrite 这是一个非常好的提示,我不记得我必须在本地启用它。我可以访问的 apache 配置我看不到,但我向托管服务提交了一个请求来检查它。
  • 您好,我收到了托管服务的反馈,默认情况下,每个主机都启用了 mod_rewrite,他们进行了测试,并且重定向正确,因此我们可以排除这种情况。
  • 嗯。在本地一切正常吗?
  • 找到了问题,感谢 Jeremy 的帮助,很抱歉浪费了您的时间。

标签: php codeigniter redirect


【解决方案1】:

几天后我终于发现了问题,这是一个愚蠢的错误,如果我在 .htaccess 文件中替换了,则可以正常工作

RewriteRule ^(.*)$ ./index.php/$1 [L,QSA]

对于

RewriteRule ^(.*)$ /index.php/$1 [L,QSA] 

只有 /index.php 后面的点导致了问题。 本地运行良好,但在服务器中..

感谢杰里米的帮助。

【讨论】:

    猜你喜欢
    • 2018-01-26
    • 1970-01-01
    • 2023-03-18
    • 1970-01-01
    • 1970-01-01
    • 2011-10-04
    • 2014-01-30
    • 2017-12-10
    • 1970-01-01
    相关资源
    最近更新 更多