人力検索はてな
モバイル版を表示しています。PC版はこちら
i-mobile

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

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

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

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



●質問者: k27w
●カテゴリ:ウェブ制作
✍キーワード:HTML mod_rewrite PHP パラメータ 対応
○ 状態 :終了
└ 回答数 : 2/2件

▽最新の回答へ

1 ● KUROX
●35ポイント

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

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

◎質問者からの返答

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


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

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

item1.html?&page=1


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


2 ● wizemperor
●35ポイント

質問が曖昧なので具体例がないと答えにくいですが、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]
関連質問


●質問をもっと探す●



0.人力検索はてなトップ
8.このページを友達に紹介
9.このページの先頭へ
対応機種一覧
お問い合わせ
ヘルプ/お知らせ
ログイン
無料ユーザー登録
はてなトップ