-1

私の実際のURLは以下です。 http://localhost/waterpump/index.php?param1=4498¶m2=930¶m3=876¶m4=201¶m5=vis

しかし、私のクライアントは以下の形式を望んでいます。 http://localhost/waterpump/param1/4498/param2/930/param3/876/param4/201/param5/vis

また、 $_GET["param1"] を使用してデータを取得することもできます

.htaccess を介してこれを行うにはどうすればよいですか?

4

2 に答える 2

0

htaccess トリックの例を試す

例えば

Options +FollowSymlinks
RewriteEngine on
RewriteRule ^blog/([0-9]+)-([a-z]+) http://corz.org/blog/index.php?archive=$1-$2 [NC]

パラメータの数が固定か可変かはわかりませんが、スラッシュで区切られた URL を一致させ、それを元の URL に「書き換える」という基本的に一致する部分を実行します。

于 2012-05-10T10:42:06.340 に答える
0

パラメータを取得するために $_GET を使用するように設定されていて、常に 1 ~ 5 個のパラメータがある場合は、次の書き換えを使用できます。

RewriteEngine On
RewriteRule ^waterpump/param1/(.*)/param2/(.*)/param3/(.*)/param4/(.*)/param5/(.*)/ /index.php?param1=$1&param2=$2&param3=$3&param4=$4&param5=$5 [nc]
RewriteRule ^waterpump/param1/(.*)/param2/(.*)/param3/(.*)/param4/(.*)/ /index.php?param1=$1&param2=$2&param3=$3&param4=$4 [nc]
RewriteRule ^waterpump/param1/(.*)/param2/(.*)/param3/(.*)/ /index.php?param1=$1&param2=$2&param3=$3
RewriteRule ^waterpump/param1/(.*)/param2/(.*)/ /index.php?param1=$1&param2=$2 [nc]
RewriteRule ^waterpump/param1/(.*)/ /index.php?param1=$1 [nc]

編集済み

これを正しく実装している場合は、print_r($_GET); を実行します。/waterpump/param1/x/param2/y/param3/z/ で次のような結果が得られるはずです。

array (
       'param1'=>x,
       'param2'=>y,
       'param3'=>z,
       );

これを行うには、書き換えが少なくてすむクリーンな方法がありますが、PHP にいくつかの変更を加えます。また、上記の方法はウォーターポンプでのみ機能します。ウォーターポンプ以外はありますか?

于 2012-05-10T10:42:19.760 に答える