Php CodeIgniter URI路由URI段和htaccess

Php CodeIgniter URI路由URI段和htaccess,php,url-routing,codeigniter-2,Php,Url Routing,Codeigniter 2,我面临一个URI路由问题,我相信这里有人可以帮我解决。我在谷歌上搜索得够多的了,我的大脑都冻住了。好的,情况是这样的 CodeIgniter版本:2.1.3 我在application/config/routes.php中路由了两个页面 $route['sites/(:any)]='profiles/professional' $route['sites/(:any)/(:any)]='profiles/professional/$1' 我有一个控制器名为:Profiles 配置文件内部的一种方

我面临一个URI路由问题,我相信这里有人可以帮我解决。我在谷歌上搜索得够多的了,我的大脑都冻住了。好的,情况是这样的

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\u user/about/

它使用控制器中的我的开关加载

所以我想我必须在.htaccess文件中添加一两行代码?谁来帮忙?我当前的.htaccess文件如下所示

RewriteEngine On
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule ^(.*)$ index.php?/$1 [L]
ModRewrite也在播放


提前非常感谢…

我想你在计算分段和 您的编解码器正在第4段中查找about关键字,以便在该URL中找到它 www.mysite.com/sites/index.php/some_user/about

请注意,这里index.php并不是真正的索引页面,因为它位于sites controller之后,它将其作为一个段引用(因此它不是一个htaccess.Issue)

如果删除index.php www.mysite.com/sites/some_user/about


关于位于第3段

尝试回显:$current_page=$this->uri->segment(4)。你得到了什么?没有显示“www.mysite.com/sites/some_user/about/”www.mysite.com/sites/index.php/some_user/about实际上显示了一切。所以我认为这应该是一个.htaccess补丁?有人吗?有答案吗?谢谢你,卢平!!!这就解决了!你的解释也很完美。我现在明白了。希望这对其他人也有帮助。再次非常感谢:)