0

私は現在、Mod rewrite を使用して php で URL を変更する方法を研究しています。

一般的な URL は次のようになります。

http://www.fitness.com/find_a_pt/?county=&constituency=211&gender=&action=search

上記の例では、選挙区のみが選択されています。郡や性別は指定されていません。

現在、上記の選挙区は「ダートフォード」を指しています。

したがって、URL が次のようになっているとよいでしょう。

http://www.fitness.com/find_a_pt/dartford

さらに複雑なのは、性別が次のいずれかである可能性があることです。

1) 未選択 - 上記の URL による

2) 男性

http://www.ego3fitness.com/find_a_pt/?county=&constituency=211&gender=1&action=search

3) 女性

http://www.ego3fitness.com/find_a_pt/?county=&constituency=211&gender=&actiom=search

したがって、URL は次のようにする必要があります。

1) http://www.fitness.com/find_a_pt/dartford

2) http://www.fitness.com/find_a_pt/dartford/male

3) http://www.fitness.com/find_a_pt/dartford/female

まず、URL の書き換えでこれを具体的にすることは可能ですか? もしそうなら、誰かが私が作業するための例を提供してくれませんか.

事前にご協力いただきありがとうございます。

4

1 に答える 1

1

私は常に同じ mode_rewrite ルールを使用します。

RewriteEngine On
RewriteCond %{REQUEST_FILENAME} -s [OR]
RewriteCond %{REQUEST_FILENAME} -l [OR]
RewriteCond %{REQUEST_FILENAME} -d
RewriteRule ^.*$ - [NC,L]
RewriteRule ^.*$ index.php [NC,L]

このルールにより、すべてが index.php に転送されます。したがって、すべての URL ロジックを PHP で自由に実装できます。

リクエスト uri を取得して、$_SERVER['REQUEST_URI']好きなことを行うことができます。

URI を解析するための正規表現ルールを備えたルーティング クラスがあると便利です。ここで例を見て、Zend、Code Igniter などの大きなフレームワークがどのようにそれを行うかを読んでください。(ちなみに、私が提供した書き換えルールは Zend Framework のものです)

于 2013-02-01T00:09:51.990 に答える