0

私はすでに、このトピックに関するスタックオーバーフローに関する記事をたくさん読んでいます。

CodeIgniter: SEO フレンドリーな URL

Codeigniter ルートが時々機能しない

そして、すべてを正しく設定したことを誓いますが、ルートを入力してアプリを保存し、新しい URL または古い URL に移動しようとすると、両方とも 404 エラーが発生します。

現在、次のような拡張機能があります。

検索/マップビュー/郡

私はこのようになりたいです:

地図/郡

routes.php ファイルに次の再ルーティングを記述したため、404 エラーが発生しました。

$route['search/map_view/(:any)'] = 'map/$1';

念のため、逆方向に行っていたので、次のようにも試しました。

$route['map/(:any)'] = 'search/map_view/$1';

それは何もしなかったので、私はそれを間違ってやったと推測しました. 注意すべき点は、Apache の mod_rewrite が URL を変更して index.php をドロップすることです。それがどのように役立つかはわかりませんが、他の投稿で多くのことに気づきました。

このためにどこか別の何かを変更することになっていますか?以前のアドレスを入力すると、新しいアドレスに自動的に再ルーティングされると思いますか? または、新しいアドレスを入力すると、自動的に機能するはずですか? わからない、それは本当に迷惑になっています...

とにかく、私はこのことについて多くの質問を持っていますが、ここから始めて、これを修正した後、ここで残りの答えを見つけることができるかどうかを確認します.

編集- 詳細情報を含めるように求められました。ここにあります。

これが .htaccess コンテンツです

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

現在、正しく動作させることができないという理由だけで、routes.php ファイルでカスタム ルートを定義していません。

現在のコントローラーは「Search」で、メソッド「map_view」に変数「county」が渡されます。したがって、URLは次のようになります

http://www.base_url.com/search/map_view/county

これを次のように変更したい

http://www.base_url.com/map/county

私が以前に書いた他のすべてはまだ適用されます。再度、感謝します!

4

1 に答える 1

2

URL をmap/countryのようにしたい。

あなたのroutes.php

$route['map/(:any)'] = 'search/map_view/$1';
$route['map'] = 'search/map_view';

また、コントローラー名が であることを確認してください。また、Search.phpクラス名はSearch拡張CI_Controllerされ、メソッド名ですmap_view() (パブリック関数である必要があります)。

詳細については、CI コントローラ ガイドを参照してください。

于 2012-04-04T14:29:23.873 に答える