0

URI ルーティングの問題に直面していますが、ここにいる誰かが解決してくれると確信しています。脳が凍るほどググった。さて、これが状況です

CodeIgniter バージョン: 2.1.3

application/config/routes.php で 2 つのページをルーティングしました

$route['sites/(:any)'] = 'プロファイル/プロフェッショナル';

$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/

それはうまくロードされます。そして、ルーティングは正常に機能します。(私は index.php を削除するために htaccess ファイルを持っています)

しかし、読み込もうとすると

www.mysite.com/sites/some_user/about/

読み込まれません (空白のページ)。ただし、ルートは実際に機能しています。なぜなら、私がロードするとき

www.mysite.com/sites/ index.php /some_user/about/

コントローラーのスイッチを使用してロードします。

.htaccess ファイルに 1 行または 2 行のコードを追加する必要があると思いますか? 誰か助けてください?現在の .htaccess ファイルは次のようになります

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

ModRewriteもONです。

事前にどうもありがとう...

4

1 に答える 1

1

セグメントの数と、コーデックがセグメント 4 の about キーワードを探しているのに誤りがあると思いますので、この URL www.mysite.com/sites/index.php/some_user/about で見つけることができます。

ここで index.php は実際にはインデックス ページではなく、サイト コントローラーの後にあり、g をセグメントとして参照していることに注意してください (したがって、htaccess.Issue ではありません)。

index.php www.mysite.com/sites/some_user/about を削除すると

Aboutはセグメント番号3にあります

于 2013-06-23T20:26:01.877 に答える