0

私は:main_controllerという名前のコントローラーを持っています。私のアプリ内のすべてのリンクは次のようなURLでそれを参照しています:/main_controller/...

今、私はこれらすべてにいくつかのSEOを挿入し、URLを次のようなよりseoのものに変更したいと思います/seo_name_for_controller/...

エラーの原因となる可能性のあるすべての発生を完全に手動で検索して置換する代わりに、次のようなhtaccessを使用してこれを実行できればと思います。

RewriteRule ^/main_controller/(.*)$ /seo_name_for_controller/$1 [L,R=301]

次に、routes.phpを使用して、次のようなプロセスを完了します。

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

それは可能ですか、それとも無限ループを引き起こしますか?誰かがこれのコード例を持っていますか?

4

2 に答える 2

1

問題は発生しないはずです。CIルートは技術的にリダイレクトするのではなく、URIパターンを使用して特定のコントローラーを呼び出すだけです。これは機能するはずです。

しかし、何が起こるかを見るためにそれを試しましたか?あなたの質問は裁判がないことを示唆しています。

于 2012-09-05T23:50:57.110 に答える
0

あなたの返事に感謝します、私はあなたのアドバイスに従いました、そして私は確認しようとしました:

htaccess:

RewriteRule ^main_controller/(.*)$ seo_controller/$1 [L,R=301]

Routes.php

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

ページのURLは次のとおりです。

http://local.com/main_controller

クリックすると機能し、リダイレクト+ルーティング後に次のように終了します:

http://local.com/seo_controller

しかし、それが「完全に見えない」わけではないのは悲しいことです。

リダイレクトされる前に、アドレスバーの「通常のURL」(/ main_controller /)を最初に使用するためです。最後に動作し、最後のURLが/seo_controller/である間に/main_controller/アクションを実行します。

しかし、それは本当に満足のいくものではありません、私は完全に目に見えないリダイレクトを持っていたでしょう。だから私は手動検索と置換の途中だと思います;)そしてルーティングのみを使用します。

于 2012-09-06T22:17:18.160 に答える