我正面临一个URI路由问题,我相信这里有人可以帮我解决。我用Google搜索足以让我的大脑冻结。好的,这是情况
CodeIgniter版本:2.1.3
我在application / config / routes.php
中路由了两个页面$ route ['sites /(:any)'] ='profiles / professional';
$ route ['sites /(:any)/(:any)'] ='profiles / professional / $ 1';
我有一个名为:Profiles
的控制器个人资料中的方法:
public function professional(){
$user = $this->uri->segment(3);
$current_page = $this->uri->segment(4);
switch ($current_page) {
case 'about':
$this->data['content'] = 'user_sites/about_view';
break;
default:
$this->data['content'] = 'user_sites/home_view';
break;
}
$this->load->view('my_view',$this->data);
}
现在如果我加载
www.mysite.com/sites/some_user /
它加载得很好。并且路由工作正常。 (我有htaccess文件删除index.php)
但是当我尝试加载时
www.mysite.com/sites/some_user/about /
它不会加载(空白页)。但是,该路线实际上正在运作。因为当我加载
www.mysite.com/sites/的的index.php / some_user /约/
使用控制器中的开关加载。
所以我想我要在.htaccess文件中添加一行或两行代码?有人请帮忙吗?我当前的.htaccess文件看起来像这样
RewriteEngine On
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule ^(.*)$ index.php?/$1 [L]
ModRewrite也是ON。
提前多多感谢...
答案 0 :(得分:1)
我认为你的细分数和你的错误 您的编解码器在段4中查找about关键字,以便在此URL中找到它 www.mysite.com/sites/index.php/some_user/about
请注意,这里index.php实际上不是索引页面,因为它位于站点控制器之后,它将g称为段(因此它不是htaccess。问题)
如果删除index.php www.mysite.com/sites/some_user/about
关于位于第3段