• 締切済み

ApacheのRewriteRuleについて

ApacheのRewriteRuleで困っています。 以下のURLを /gr/15bd60625f36edee4051b82e021d7a7f1137487409.php?categoryID=1&TitleID=38 このようなURLに置き換えて実行させようと思っています。 /grco/index.php?cat=1&id=38 mod_rewriteを導入し(動作確認済み) Apacheのhttpd.confに以下の定義を追加しいろいろと やっていますが・・うまくいきません。 URLの?がうまく処理できていないようです。 引数部分の置き換えができていません。 RewriteRule ^/gr/(.*)(.\.php)([^\?]*)(.*)$ /grco/index.php?cat=$1&id=$2 [L] 何か指定に問題があるのでしょうか? お手数ですが、ご存知の方がいらっしゃいましたら アドバイス等いただければと思います。 よろしくお願いします。

みんなの回答

  • php504
  • ベストアンサー率42% (926/2160)
回答No.1

RewriteRuleではquery stringのマッチは出来ません 参考URLのNote: Query Stringのところを読んでみたください。 ?以下をそのまま渡して良ければ RewriteRule ^/gr/.+\.php$ /grco/index.php?%{QUERY_STRING} [L] で出来ますがQueryの内容を変更する場合にはRewriteCondで行う必要があります。

参考URL:
http://httpd.apache.org/docs/2.0/mod/mod_rewrite.html#rewriterule

関連するQ&A

専門家に質問してみよう