当我调用控制器时,Code Igniter无法识别我的base-url

时间:2018-01-31 18:40:20

标签: php codeigniter iis controllers

我的应用程序识别主页index.php(调用名称为Home的控制器并按预期显示此主页)。

虽然当我在菜单中调用主题(也是控制器)时,它会因此错误而失败:

HTTP错误404.0 - 未找到

http://alfa.teste:80/estrutura其中

http://alfa.teste/是基本网址和' estrutura'是控制器。

请帮忙吗?非常感谢你!

1 个答案:

答案 0 :(得分:2)

在config.php文件中的

把这个小代码放在base_url数组下面

  

$ config ['base_url'] ='';

//try to catch the base url in case of undefined base url 
if (!$config['base_url']) {

    $domain = $_SERVER['HTTP_HOST'] . $_SERVER['SCRIPT_NAME'];

    $domain = preg_replace('/index.php.*/', '', $domain);
    if (!empty($_SERVER['HTTPS'])) {
        $config['base_url'] = 'https://' . $domain;
    } else {
        $config['base_url'] = 'http://' . $domain;
    }
}

并在autoload.php文件中,您需要在辅助数组中添加url,如下所示:

$autoload['helper'] = array('url');

如果您调用base url function

,您的代码将正常工作
  

BASE_URL();

如果这仍然不适合您,则需要在项目的根文件夹中创建.htaccess文件。在.htaccess文件中写下以下代码:

RewriteEngine on
RewriteCond $1 !^(index\.php|resources|robots\.txt)
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule ^(.*)$ index.php?/$1 [QSA,L]

我希望上述任何解决方案都适合您。