0

私は次の書き換えを試みています

1. http://domain.cm/app/user/view?group=3&userid=34 to http://domain.cm/app/user/view/group/3/userid/34

2. http://domain.com/app/class/edit?classid=13 to http://domain.com/app/class/edit/classid/13

これは1つのルールで達成できますか? 書き換える必要のあるそのような URL がたくさんあり、それぞれに 1 つのルールを作成するのは非常に冗長に見えます。

4

2 に答える 2

0

いいえ、別のルールが必要です(少なくとも、提供した例については)。

于 2013-10-01T21:00:10.693 に答える
0

次のようなものを試すことができますが、何かに一致させるには少し熱心すぎるかもしれませ:

RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule ^app/([^/]+)/([^/]+)/([^/]+)/([^/]+)/(?:([^/]+)/|)(?:([^/]+)/?|)$ /app/$1/$2?$3=$4&$5=$6 [L,QSA]

次のようなリクエストを行うと、そのようになります。

http://domain.com/app/class/edit/classid/13

でコンテンツが提供されます

/app/class/edit?classid=13

最大 6 つのパス ノードを処理できるため、次のようになります。

http://domain.com/app/a/1/b/2/c/3

次の場所にルーティングされます。

/app/a/1?b=2&c=3

さらに、ルールのターゲットの最後にと aの(?:([^/]+)/|)(?:([^/]+)/?|)前にもう 1 つ追加するだけです。$&$7=$8

于 2013-10-01T21:06:28.383 に答える