当我访问localhost:8080 / ignite_me时,它显示home.php的内容与页眉和页脚,但是当我尝试localhost:8080 / igniteme / test它给了我Apche 404页面和test.php存在于我的视图/页面中在哪里我把我的home.php
甚至localhost:8080 / igniteme / home无效,但localhost:8080 / igniteme显示home.php的内容
routes.php文件
$route['(:any)'] = 'pages/view/$1';
$route['default_controller'] = 'pages/view';
$route['404_override'] = '';
$route['translate_uri_dashes'] = FALSE;
Pages.php
<?php
class Pages extends CI_Controller {
public function _construct()
{
parent::_construct();
}
public function view($page = 'home')
{
if ( ! file_exists(APPPATH.'/views/pages/'.$page.'.php'))
{
// Whoops, we don't have a page for that!
show_404();
}
$data['title'] = ucfirst($page); // Capitalize the first letter
$this->load->view('templates/header', $data);
$this->load->view('pages/'.$page, $data);
$this->load->view('templates/footer', $data);
}
}
的.htaccess
<IfModule mod_rewrite.c>
RewriteEngine On
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule ^(.*)$ index.php/$1 [L]
</IfModule>
的config.php
$config['base_url'] = 'http://localhost:8080/igniteme/';
$config['index_page'] = '';
我无法理解为什么home.php与localhost:8080 / ignite_me一起使用,为什么不使用localhost:8080 / igniteme / home或任何其他页面无效 我已经从其他堆栈溢出问题中复制了.htaccess,即使使用默认堆栈溢出问题也没有。
这是指向我的完整codeignite文件夹igniteme
的链接答案 0 :(得分:2)
试试这个
$config['base_url'] = 'http://localhost:8080/igniteme/';
$config['index_page'] = 'index.php';
答案 1 :(得分:2)
我正在使用wamp我使用下面的htaccess
Options +FollowSymLinks
Options -Indexes
DirectoryIndex index.php
RewriteEngine on
RewriteCond $1 !^(index\.php|images|robots\.txt)
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule ^(.*)$ index.php/$1 [L,QSA]
确保在主目录中。
同样在wamp中确保您已启用APACHE MOD REWRITE
滚动/点击并在列表中向下找到rewrite_module
点击它然后去重新启动wamp。
答案 2 :(得分:1)
让我们从简单的方法开始
我假设 ignite_me 是您的项目文件夹和views文件夹 你有两个文件test.php和home.php,默认情况下有welcome.php文件。
现在开始配置你的路线
1.首次使用localhost:8080/ignite_me
点击网址时,会显示welcome.php文件
因为有欢迎的控制器
现在首先确定要使哪个控制器默认
假设你已经设置了控制器来测试,所以每次你点击url
测试视图将打开
对于像这样的配置
在routes.php中
$route['default_controller'] = "test";
现在每次引用视图test.php
如果你想这样访问
localhost:8080/ignite_me/index.php/test.php
它重定向到相同的
现在要删除index.php
,我们应该使用.htaccess
文件
在
<强>的.htaccess 强>
RewriteEngine on
RewriteCond $1 !^(index\.php|images|robots\.txt)
RewriteRule ^(.*)$ index.php/$1 [L]
现在你可以再次访问它了
localhost:8080/ignite_me/index.php/test.php
它为您提供404未找到的错误
localhost:8080/ignite_me/test.php
它会为您提供该页面
路线的Genereal Ways是
localhost:8080/ignite_me/[controller]/views
答案 3 :(得分:0)
当我将一个codeigniter 2应用程序从windows中的xampp移动到一个ubuntu服务器14.04 LTS时,我遇到了类似的问题
我的.htaccess文件:
int cmpfunc (const void *a, const void *b)
{
Item i = *((Item*) a);
Item j = *((Item*) b);
if (i->acc < j->acc)
return 1;
else
return -1;
}
$ config ['index_page'] =''; //空白,因此index.php不会与.htaccess文件一起显示内联
我启用了路由,除了我的欢迎控制器之外,其他所有内容都获得了404
我所做的是确保启用mod_rewrite并在/etc/apache2/sites-available/000-default.conf上设置以下配置
在“DocumentRoot / var / www / html”下面添加以下行:
RewriteEngine On
RewriteCond $1 !^(index\.php|resources|robots\.txt)
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule ^(.*)$ index.php/$1 [L,QSA]
通过CTRL-X,“y”和ENTER保存并退出nano编辑器。
然后重启服务:sudo service apache2 restart
希望它为您提供诀窍