動的urlを静的urlに変換するmod_rewriteについて教えて下さい。

パラメーターが1つ、又は2つと、決まってないときの書き方はどうすればいいでしょうか?

以下のように
ドメイン/値1/値2/ で、
kekka.php?str1=値1&str2=値2 が動くようには以下で出来ました。
RewriteRule ^([^/]+)/([^/]+)/?$ kekka.php?str1=$1&str2=$2 [L]
この値2があったり無かったりする場合どのようにすればいいでしょうか?

ドメイン/値1/値2/ のときや、
ドメイン/値1/   のときがある場合です。よろしくお願いします。

回答の条件
  • 1人2回まで
  • 登録:
  • 終了:2010/09/14 17:22:49
※ 有料アンケート・ポイント付き質問機能は2023年2月28日に終了しました。

ベストアンサー

id:y-kawaz No.1

回答回数1422ベストアンサー獲得回数226

ポイント35pt

試してませんが↓こんな感じでいいんじゃないでしょうか?

RewriteRule ^([^/]+)(/[^/]+)?/?$ kekka.php?str1=$1&str2=$2 [L]

同様に以下のようにすれば、0個から9個までいくつでも対応できると思います。

RewriteRule ^([^/]+)?(/[^/]+)?(/[^/]+)?(/[^/]+)?(/[^/]+)?(/[^/]+)?(/[^/]+)?(/[^/]+)?(/[^/]+)?/?$ kekka.php?str1=$1&str2=$2&str3=$3&str4=$4&str5=$5&str6=$6&str7=$7&str8=$8&str9=$9 [L]
id:cafet

ありがとうございます!

試してみてうまくいきました。感謝します。

2010/09/14 17:22:00

その他の回答1件)

id:y-kawaz No.1

回答回数1422ベストアンサー獲得回数226ここでベストアンサー

ポイント35pt

試してませんが↓こんな感じでいいんじゃないでしょうか?

RewriteRule ^([^/]+)(/[^/]+)?/?$ kekka.php?str1=$1&str2=$2 [L]

同様に以下のようにすれば、0個から9個までいくつでも対応できると思います。

RewriteRule ^([^/]+)?(/[^/]+)?(/[^/]+)?(/[^/]+)?(/[^/]+)?(/[^/]+)?(/[^/]+)?(/[^/]+)?(/[^/]+)?/?$ kekka.php?str1=$1&str2=$2&str3=$3&str4=$4&str5=$5&str6=$6&str7=$7&str8=$8&str9=$9 [L]
id:cafet

ありがとうございます!

試してみてうまくいきました。感謝します。

2010/09/14 17:22:00
id:deflation No.2

回答回数1036ベストアンサー獲得回数126

ポイント35pt

下のように2行書けば良いと思います。

RewriteRule ^([^/]+)/$ kekka.php?str1=$1 [L]
RewriteRule ^([^/]+)/([^/]+)/$ kekka.php?str1=$1&str2=$2 [L]
id:cafet

ありがとうございます!

こちらも試してみてうまくいきました。大変参考になりました。

2010/09/14 17:22:17

コメントはまだありません

この質問への反応(ブックマークコメント)

「あの人に答えてほしい」「この質問はあの人が答えられそう」というときに、回答リクエストを送ってみてましょう。

これ以上回答リクエストを送信することはできません。制限について

回答リクエストを送信したユーザーはいません