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

.htaccessのRewriteRuleの書き方について教えてください。

/menu/goods/data.php?id=1234567890&category=3

/menu/goods/03/1234567890.html
としてアクセスさせたいです。
category=3の部分は1ケタ〜2ケタ、idの部分は10ケタ固定です。

お知恵をお貸しください。
どうぞ宜しくお願いします。

●質問者: sakurago
●カテゴリ:ウェブ制作
○ 状態 :終了
└ 回答数 : 2/2件

▽最新の回答へ

1 ● kodairabase
●100ポイント

このようにしてみてください。

RewriteEngine On
RewriteRule ^/menu/goods/data\.php\?id\=([0-9]{10})&category\=([0-9]{1})$ /menu/goods/0$2/$1 [R,L]
RewriteRule ^/menu/goods/data\.php\?id\=([0-9]{10})&category\=([0-9]{2})$ /menu/goods/$2/$1 [R,L]

2 ● y-kawaz
●100ポイント

.htaccessを置く場所によって変わります。

/menu/goods/.htaccessに書く場合

RewriteEngine On
RewriteRule ^(?:0([0-9])|([1-9][0-9]))/([0-9]{10})\.html data.php?id=$3&category=$1$2 [L]


/.htaccessに書く場合
RewriteEngine On
RewriteRule ^menu/goods/(?:0([0-9])|([1-9][0-9]))/([0-9]{10})\.html /menu/goods/data.php?id=$3&category=$1$2 [L]


httpd.confに書く場合(頭に/が付きます。逆に言うと.htaccessでは^/をつけるとマッチしないです)
RewriteEngine On
RewriteRule ^/menu/goods/(?:0([0-9])|([1-9][0-9]))/([0-9]{10})\.html /menu/goods/data.php?id=$3&category=$1$2 [L]


rouge_2008さんのコメント
間違えたので書き直しています。 categoryが一桁の時、アクセスするURLが「/menu/goods/01/?」「/menu/goods/02/?」「/menu/goods/03/?」...となるのでしたら、以下のようにするといいかも・・・ >|| RewriteRule ^/?menu/goods/(?:0([1-9])|([1-9][0-9]))/([0-9]{10})\.html /menu/goods/data.php?id=$3&category=$1$2 [L] ||<

y-kawazさんのコメント
id:rouge_2008 さんのアドバイスに従いちょっと直しました。指摘どもです!
関連質問

●質問をもっと探す●



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