我在函数调用中遇到Codeigniter的奇怪问题。我创建了一个控制器名称 ErrorLog ,然后创建了一个方法 addUpdateError 。然后在视图部分我创建了一个像这样的链接(锚标记)
<a style="float:right" href="<?php echo site_url('errorLog/addUpdateError') ?>" title="Add an Error" alt="Add an Error">Add an Error</a>
我甚至尝试过这个
<a style="float:right" href="errorLog/addUpdateError" title="Add an Error" alt="Add an Error">Add an Error</a>
这个也是
<a style="float:right" href="<?php echo base_url(); ?>errorLog/addUpdateError" title="Add an Error" alt="Add an Error">Add an Error</a>
浏览器中的网址为 http://localhost/projectName/errorLog/addUpdateError ,我认为它有效。
当我点击这个锚标记时,它会给我这个错误
默认控制器正在正确加载,但之后如果我导航到任何地方都无法正常工作。我在 config.php 中正确设置了 base_url ,并且还将 index_page 设置为空白。我已经尝试了所有可能的方法并在Google上搜索。 我甚至尝试在欢迎控制器中使用 CodeIgniter-2.2.6 进行Codeigniter全新设置,问题仍然出现。
目前我正在使用 PHP 7和COdeigniter 3以及Ubuntu 16.04 我只是猜测这个问题可能是因为 PHP 7 。
任何帮助都将不胜感激。
答案 0 :(得分:0)
您的问题是由.htaccess文件引起的。
尝试以下步骤,
像这样设置配置文件(application/config/config.php
),
$config['index_page'] = '';
之后,使用以下代码更改位于项目根文件夹中的.htaccess文件,而不是在应用程序文件夹中。
RewriteEngine on
RewriteCond $1 !^(index\.php|public|\.txt)
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule ^(.*)$ index.php?$1