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

動的アドレスから静的アドレスにするモジュールを導入し

example.com/index.php?main_page=product_info&products_id=24&cPath=1_2
↓↓
example.com/product/p24.html?cPath=1_2

と出来たのですが、さらにcPathを別の文字(例としてaaa)に変えようと
チャレンジしてみるものの、.htaccessの書き方がわかりません。

現状の.htaccessは

RewriteRule ^(.*)product/p(.*).html$ index\.php?main_page=product_info&products_id=$2&%{QUERY_STRING} [L]


となっています。


example.com/product/p24.html?aaa=1_2
↓↓
example.com/index.php?main_page=product_info&products_id=24&cPath=1_2


もしくは

http://example.com/product/p24.html?aaa=1_2
↓↓
http://example.com/product/p24.html?cPath=1_2


となるよう、上記.htaccessのコードに加える(もしくは変更する)ソースをお願いします。
クエリが付かない場合や、別のクエリが入ることがありますが、基本的にcPath=××は
アドレスの最後位置になります。





●質問者: pocon
●カテゴリ:インターネット ウェブ制作
✍キーワード:.htaccess 24 AAA example.com HTML
○ 状態 :終了
└ 回答数 : 1/1件

▽最新の回答へ

1 ● tezcello
●60ポイント ベストアンサー

Mod_Rewrite ではクエリの中まで書き換えられなかったような...

example.com/product/p24.html?aaa=1_2

へのアクセスではなく、

example.com/product/p24.html/1_2

へのアクセスを

example.com/index.php?main_page=product_info&products_id=24&cPath=1_2

へ置き換えるってのはダメですか?

RewriteRule ^(.*)product/p(.*).html/?(.*) index.php?main_page=product_info&products_id=$2&cPath=$3 [QSA] [L]

ご希望の動作はクエリの名前を変えているだけですから、index.php 内で

$_GET['aaa'] = $_GET['cPath'];

とするだけでもいいような気もしますが?


別のクエリが付く事を気にされているのなら、[QSA] フラグで解決しませんか?

http://httpd.apache.org/docs/1.3/mod/mod_rewrite.html#RewriteRul...

◎質問者からの返答

ご提示いただいたRewriteRuleでうまくいけそうです。

ありがとうございます。

関連質問


●質問をもっと探す●



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