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=××は
アドレスの最後位置になります。
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でうまくいけそうです。
ありがとうございます。