0

私の質問は単純なものですが、答えが見つからないようです。現在、Web サイトの URL 書き換えに取り組んでいますが、問題が発生しました。現在、私が持っている最も基本的なルールは次のようになります。

RewriteRule ^([a-zA-Z]+)/(([a-zA-Z]+)/?$ index.php?mod=$1&com$2

これはほとんどの場合に機能し、これが適用されない特殊なケースがいくつかありますが、ページの 1 つは URL を介して多くの情報を渡す必要があり、これを自動的に書き換えたいと考えています。いくつかの例:

website.com/asdf/jkl/id/5/page/2なるべきwebsite.com/index.php?mod=asdf&com=jkl&id=5&page=2

website.com/qwer/yuio/search/keyword/sort/alphaなるべきwebsite.com/index.php?mod=qwer&com=yuio&search=keyword&sort=alpha

これは可能ですか?私は本当にここでいくつかの助けを借りることができました.ありがとう! :)

4

2 に答える 2

3

使用している言語/フレームワークによっては、mod_rewrite ですべてを実行するよりも、スクリプトに書き換え/ディスパッチを配置する方が簡単な場合があります。

たとえば、PHP を使用していた場合、次の URL が与えられます。

http://www.example.com/asdf.php/jkl/id/5/page/2

asf.php のスクリプトは、PATH_INFO 変数を読み取り、それをスラッシュで分割し、値を $_REQUEST の予想される場所に書き込むことができます。

次に必要なのは、'.php' を削除する単純な書き換えルールだけです。

于 2009-02-12T16:50:22.810 に答える
0

再帰ルールを使用できます。

RewriteRule ^([a-zA-Z]+)/([a-zA-Z]+)/?$ index.php?mod=$1&com$2 [L,QSA]
RewriteRule ^([^/]+/[^/]+)/([^/]+)/([^/]+)/?(.*) $1/$4?$2=$3 [QSA]

しかし、PHP でリクエスト パスを解析する方が簡単なのは確かです。

于 2009-02-12T15:59:49.310 に答える