1

私は解決策を見つけようとしましたが、ここで何か間違ったことをしていると思います。

codeigniter ルーティングについてよく知っている人なら誰でも、この点で私を助けてくれることを願っています。

私が欲しいのは、

私は名前の付いたデフォルトのコントローラーを持っていますmain

$route['default_controller'] = "main";
$route['404_override'] = '';

私のサイトのURLは

mydomain.com/main/#home
mydomain.com/main/#search
mydomain.com/main/#login

私が望むのはmain、センターから削除/非表示にすることであり、リンクは直接機能します。このような

mydomain.com/#home

しかし、私は codeigniter のドキュメントを使用して少し成功しました。これは私がそれを達成するためにしたことです。ルートファイルにこれを追加しました

$route['(:any)'] = "main/$1";

それは機能しましたが、他のリンクを台無しにしました。

最初はdomain.com/main/#home動作を停止しました。第二に、ここに他のコントローラー名を付けることはできませんか??

つまり、これdomain.com/virtualvault/#searchを試してもうまくいきません..

私がそれをしようとしているのは、私がdomain.com/main/#homeそれに行くときはホームページに行くべきであり、また私がしようとするときdomain.com/#homeも同じホームページに行くべきであり、他のコントローラーが完全に機能することを忘れないようにする必要があります。つまり、動作するdomain.com/othercontrollername/#functionはずです。

何をどのように達成するか、.htaccessまたはルートphpファイル..

ルートコードの下でこれを試しました。

$route['#+(:any)'] = "main/#+$1";

しかし、私はこのルーティングまたは .htaccess ファイルが苦手です。

それを達成する方法はありますか??

4

2 に答える 2

4
// The below line is for the old controller to work as before
$route['main/(:any)'] = "main/$1"; 

//This line is for making other controllers work as before, you have to put them all
$route['virtualvault/(:any)'] = "virtualvault/$1";

//This is the last line; the order is important
$route['(:any)'] = "main/$1"; 
于 2013-04-26T10:47:15.100 に答える
0

コントローラー名なしでこれら 3 つの URL (ホーム、検索、ログイン) のみが必要な場合は、そのうちの 3 つを routes.php ($route['login'] = "main/login";など) に配置し、他の URL が再ルーティングされるのを防ぐためにワイルドカードを使用しません。

したがって、それらはすべて次のようになります。

$route['home'] = "main/home";
$route['search'] = "main/search";
$route['login'] = "main/login";
于 2013-04-26T10:04:02.453 に答える