1

現在、Codeigniter を使用して Web アプリを作成しています。彼らのドキュメントでは、クエリ文字列よりもセグメント化された URL が好まれていることに気付きました。私も先日、threadless.com を閲覧していて、クエリのフォーマット方法がとても気に入りました。

通常、クエリは次のようになります。

http://www.threadless.com/catalog/index.php?type=guys&view=25&size=3xl

ただし、スレッドレスでは次の形式が使用されます。

http://www.threadless.com/catalog/type,guys/view,25/size,3xl

彼らはどのようにしてそのフォーマットを取得しますか? .htaccess が関係していますか? その形式は Codeigniter でうまく機能しますか、それともカスタム関数を必要としますか?

ありがとう!

4

4 に答える 4

3

あなたはあなたが持つことができるところに似たようなことをすることができます。

http://www.threadless.com/catalog/type/guys/view/25/size/3x1

そのためには、次のようなコントローラー関数が必要です。

class Catalog extends CI_Controller {
    function catalog()
    {
        $params = $this->uri->uri_to_assoc(3);
    }
}

これは次のようなものを出力します:

Array
(
    [type] => 'guys'
    [view] => 25
    [size] => '3x1'
)

カンマが必要な場合は、.htaccessをタッチして、すべての「、」を「/」に書き換えます。

RewriteCond %{REQUEST_URI} ^([^\,]*)\,(.*)$
RewriteRule .* %1/%2 [R=301,L]
于 2012-07-05T15:11:14.847 に答える
1

.htaccess の mod_rewrite です

http://statichtml.com/2010/mod-rewrite-baseon-on-query-string.html

于 2012-07-05T15:03:27.513 に答える
0

Apacheを使用している場合は、.htaccess、.htdocs、またはhttpd.confのいずれかが含まれます(複数のメソッドがあります)。重要なのは、「catalog」という名前のファイルが.phpファイルとして解析されるように設定することです。次に、ファイル名(/type,guys/view,25/size,3xl)以降のすべてがとしてスクリプトに渡され$_SERVER['PATH_INFO']ます。これは自分で解析します。

CodeIgniterが正確にどのように機能するか、またはこれを別の方法で行う機能があるかどうかはわかりません。

于 2012-07-05T15:06:27.470 に答える
0

CodeIgniter が通常行う方法ではありませんが、http://codeigniter.com/user_guide/general/routing.htmlにヘルプがあります。

編集する必要があります/application/config/routing.php

于 2012-07-05T15:07:32.100 に答える