0

我正面临一个 URI 路由问题,我相信这里有人可以帮助我解决。我已经在谷歌上搜索到足以让我的大脑冻结。好的,情况如下

CodeIgniter 版本:2.1.3

我在 application/config/routes.php 中路由了两个页面

$route['sites/(:any)'] = 'profiles/professional';

$route['sites/(:any)/(:any)'] = 'profiles/professional/$1';

我有一个名为: Profiles 的控制器

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/about/ _ _

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

所以我想我必须在我的 .htaccess 文件中添加一两行代码?有人请帮忙吗?我当前的 .htaccess 文件看起来像这样

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

ModRewrite 也已开启。

非常感谢提前...

4

1 回答 1

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 段

于 2013-06-23T20:26:01.877 回答