0

データベースに保存されている製品のSEOに適したURLを作成したいと思います。

URLからProductNameを取得するにはどうすればよいですか?

例えば:

http://domain.com/ProductName

ProductNameがControllerではない場合。コントローラからProductNameを検証して表示する必要があります。

4

4 に答える 4

5

個人的には、データベースから製品を検索するためのパラメーターを受け入れる products というコントローラーを作成します。

class Products extends CI_Controller
{
    public function index($productname)
    {
        $data['product'] = $this->db->get_where('products', array('urlname' => $product))->row_array();
        // other functionality here and view loading
    }
}

次に、このシナリオのルーティングを追加します (config/routes.php):

$route['other/routes/first'] = "their/correct/controller/$1";
$route['/(:any)'] = "/products/index/$1";

CI を使用してからしばらく経ちましたが、これは正しい方向に向けるのに役立つはずです。

于 2012-11-30T08:47:13.870 に答える
2

routes.php にルーティング ルールを追加できます。要求を製品コントローラーにリダイレクトします。

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

Product コントローラーで、URI セグメントから製品名を取得します。

$product_name = $this->uri->segment(2);
于 2012-11-30T08:47:45.170 に答える
0

URI ルーティング (ルーティング ルール)を使用できます。

ルーティング ルールは、application/config/routes.php ファイルで定義されます。その中に、独自のルーティング基準を指定できる $route という配列があります。ルートは、ワイルドカードまたは正規表現を使用して指定できます

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

この例では、次のようになります: http://www.example.com/MyProductName/製品クラスをロードし、名前をパラメーターとして指定します。

于 2012-11-30T08:51:48.960 に答える
-3

これを実現するためにCIルートを利用できます

Application/config/routes.php を編集

$route['/(:any)'] = "/products/index/$1";
于 2012-11-30T09:06:59.937 に答える