mod_rewriteの指定方法について質問です。


以下のように設定して、item.php?id=1ならitem1.htmlと表示するようにしています。
RewriteRule item([0-9\-]+)\.html item.php?id=$1

しかしパラメーターが、item.php?id=1&page=1
の場合はページが表示されません。

おそらく書き方が悪いと思うのですが、どの部分を修正すればよいのでしょうか?
出来れば、&page以降、パラメーターが増えた場合にも対応出来る書き方を教えていただければと思います。

回答の条件
  • 1人2回まで
  • 登録:2008/02/18 02:11:48
  • 終了:2008/02/25 02:15:02

回答(2件)

id:KUROX No.1

KUROX回答回数3542ベストアンサー獲得回数1402008/02/18 02:41:19

ポイント35pt

RewriteRule item([0-9\-]+)\_([0-9\-]+)\.html item.php?id=$1page=$2

http://memorva.jp/memo/linux/mod_rewrite.php

id:k27w

すみません。質問が悪かったです。


item.php?id=1の場合はitem1.htmlで良いのですが、

item.php?id=1&page=1の場合

item1.html?&page=1


と、&を付けてパラメーターを表示したいのです。(なぜなら、id以外はパラメーターが付いて欲しいからです)

2008/02/18 03:48:42
id:wizemperor No.2

wizemperor回答回数379ベストアンサー獲得回数522008/02/18 04:11:46

ポイント35pt

質問が曖昧なので具体例がないと答えにくいですが、KUROXさんの回答を補足して回答。


item1.html -> item.php?id=1

item1_2.html -> item.php?id=1&page=2

item1_2_3.html -> item.php?id=1&page=2&param=3

としたいなら、

RewriteRule item([0-9\-]+)\.html item.php?id=$1page=$2
RewriteRule item([0-9\-]+)_([0-9\-]+)\.html item.php?id=$1&page=$2
RewriteRule item([0-9\-]+)_([0-9\-]+)_([0-9\-]+)\.html item.php?id=$1&page=$2&param=$3
…

item1.html -> item.php?id=1

item1.html?page=2 -> item.php?id=1&page=2

item1.html?page=2&param=3 -> item.php?id=1&page=2&param=3


な感じにしたいなら、


RewriteRule item([0-9\-]+)\.html item.php?id=$1 [QSA]

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

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

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

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

絞り込み :
はてなココの「ともだち」を表示します。
回答リクエストを送信したユーザーはいません