• ベストアンサー
※ ChatGPTを利用し、要約された質問です(原文:RewriteRuleでのバーチャルドメイン書き換え)

RewriteRuleでのバーチャルドメイン書き換えの方法

このQ&Aのポイント
  • RewriteRuleを使用して、バーチャルドメインの書き換えを実現する方法について解説します。
  • RewriteRuleを使用して、URL内の特定のパラメータを省略した短い形式に書き換える方法について解説します。
  • 複数のRewriteRuleを同時に使用する場合、正しく機能させるためにはどのような設定が必要なのかについて解説します。

質問者が選んだベストアンサー

  • ベストアンサー
  • kalze
  • ベストアンサー率47% (522/1092)
回答No.1

[L]付けちゃってるから、上の行処理した時点で終了し、2行目解釈してもらえないのではないでしょうか? [L]はこの行を解釈したら終わりですってものだし。 http://example.com/script/var という形式で固定みたいだから、スクリプト名部分とvar部分を取得して、それをスクリプト名にしてvar部分を引数にするようにしてやるとか。 RewriteRule ^([0-9A-Za-z]+)/([0-9A-Za-z]+) $1.php?id=$2 とか。 (試してないので保証はないけど、こんな感じってことで) これだけだと実際にあるページとかにも影響が出てしまうので、このRuleの前にRewriteCondで実データ(ファイルとかディレクトリ)が無いかチェックして、無ければ実行するようにすればいいのではないかと。 逐次やるなら、 RewriteCond script部がtopなら RewriteRule ^/top/$ /top.php?id=%1 [L] RewriteCond script部がfreeなら RewriteRule ^/free/$ /free.php?id=%1 [L] という形でもよいとおもいますが。 (Condの条件はすぐに書けると思うので割愛)