0

このURLを書き直す必要があります:

domain.com/mali_oglasi/index/1(任意の数)

に:

domain.com/mali_oglasi

私の.htaccessファイルには次のコードがあります:

RewriteEngine On
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d

これどうやってするの?

4

2 に答える 2

1

コントローラー/メソッドをデフォルトの動作とは異なる方法でマップすることだけが必要な場合は、route.php構成ファイルを使用できます。こちらの公式ドキュメントをご覧ください:http://codeigniter.com/user_guide/general/routing.html

あなたの場合、あなたはこのようなものを持っているでしょう:

$route['mali_oglasi/index/(:num)'] = 'mali_oglasi';

コントローラの後半で、次を使用して元の数字を取得できます。

$this->uri->rsegment(3);

それ以外の :

$this->uri->segment(3);

(ここの公式ドキュメントを参照してください:http://codeigniter.com/user_guide/libraries/uri.html

編集:

実際、パラメータを追加する必要があるときに「インデックス」セグメントを削除したいだけの場合は、私の最初の答えの逆を実行することをお勧めします。

$route['mali_oglasi/(:num)'] = 'mali_oglasi/index/$1';

その行を使用すると、「www.yourdomain.com/mali_oglasi/1」の形式のすべてのリクエストは、codeigniterによって「www.yourdomain.com/mali_oglasi/index/1」であるかのように解釈されます。つまり、コントローラー「mali_oglasi」のメソッド「index」がリクエストの処理に使用されます。

数字を取得する必要がある場合は、次を使用します。

$this->uri->segment(3);

したがって、クライアントがURL "www.yourdomain.com/mali_oglasi/index/1"に直接アクセスする必要がある場合でも、適切なuriセグメントを取得できます。(URIを書き換えた$this->uri->segment(n);後にn番目のセグメントを提供し、URIが書き換えられる前にn番目のセグメントを提供します。)route.php$this->uri->rsegment(n)

于 2012-09-26T09:42:58.443 に答える
0

ユーザーを新しいURLにリダイレクトすることをお勧めします:

コントローラmali_oglasi内>>関数内index

以下の行を入れてください

redirect('mali_oglasi');

例えば

クラスmali_oglasiはCI_Controller{を拡張します

function Index($id){
    // Note : make sure you have loaded the url helper
    redirect('mali_oglasi');
}

}

注:ロードすることを忘れないでくださいurl helper

注:$config['index_page'] = '';の代わりに 設定indexするapplication/config/config.php

于 2012-09-26T10:26:22.400 に答える