localhost上的CodeIgniter:找不到404

时间:2016-12-20 15:33:03

标签: php codeigniter redirect routing

出于测试目的,我将所有代码和数据库记录从我们的实时服务器复制到本地服务器。

我们的实时服务器正在将www.our-site.eu重定向到www.our-site.eu/en,然后以特定语言显示主页。

相同的代码,本地托管的相同数据库,完全失败。 localhost被重定向到localhost/en。但随后出现错误404:The requested URL /en/ was not found on this server.

系统\核心\ CodeIgniter.php

$EXT->_call_hook('pre_controller');

应用\设置\ hooks.php

$hook['pre_controller'][] = array(
        ...
    );
$hook['pre_controller'][] = array(
        'class'    => 'MY_Lang',
        'function' => 'define_language',
        'filename' => 'MY_Lang.php',
        'filepath' => 'core',
        'params'   => array()
    );
$hook['pre_controller'][] = array(
        ...
    );

应用\芯\ MY_LANG.php

...
header('Location: '.$config['base_url'].$index_page.$URI->uri_string); //http://localhost/en
exit;
...

的.htaccess

<IfModule mod_rewrite.c>
    RewriteEngine on

    RewriteBase /

    RewriteCond $1 !^(themes)

    RewriteCond %{REQUEST_FILENAME} !-f
    RewriteCond %{REQUEST_FILENAME} !-d

    RewriteCond $1 !^(index\.php|assets|static|img|css|js|map|favicon\.ico)
    RewriteRule ^(.*)$ ./index.php?/$1 [L,QSA]
    RewriteRule ^sitemap\.xml$ ./index.php?/$1 [L,QSA]
    RewriteRule ^robots\.txt$ ./index.php?/$1 [L,QSA]

</IfModule>

<IfModule mod_deflate.c>
    <filesMatch "\.(js|css|png)$">
        SetOutputFilter DEFLATE
    </filesMatch>
</IfModule>

AddOutputFilterByType DEFLATE text/ico text/html text/plain text/xml text/css application/javascript application/x-javascript application/x-httpd-php application/rss+xml application/atom_xml text/javascript

我的主要config.php必须遵循第$config['base_url'] = 'http://localhost/';

我是CodeIgniter的新手,所以我真的不知道为什么它在实时服务器上运行而不是在本地运行。

url_rewriting在两台服务器上均处于活动状态。

0 个答案:

没有答案