mod_rewite の記述方法についての質問です。


URL中の一階層目のパスを無視して
特定のディレクトリ配下のファイルを表示したいです。

例えば

http://hoge.com/[a-z]+/path/file.php

http://hoge.com/[a-z]+/path/path/file.php

といったURLでアクセスされた場合、

http://hoge.com/dir/path/file.php

http://hoge.com/dir/path/path/file.php
へのアクセスということにしたいです。

で、さらに、一階層目のパスと、もともとのURLに含まれるCGI値両方を、
最終的に呼び出されるファイルでCGI値として受け取りたいです。

例えば

http://hoge.com/a/path/file.php?b=1
なら
http://hoge.com/dir/path/file.php
でCGI値として「hoge=a」「b=1」と受け取りたい。

片方づつなら
RewriteCond %{REQUEST_URI} !^/dir/ [NC]
RewriteRule ^([a-z]+)/(.*)$ /dir/$2 [L]
(「b=1」受け取り)

や、

RewriteCond %{REQUEST_URI} !^/dir/ [NC]
RewriteRule ^([a-z]+)/(.*)$ /dir/$2?hoge=$1 [L]
(「hoge=a」受け取り)

といった感じでかんとかできたのですが、
両者を受け取る方法がわかりません。
ご教授いただけませんでしょうか?

回答の条件
  • 1人2回まで
  • 登録:
  • 終了:2007/10/09 09:32:29
※ 有料アンケート・ポイント付き質問機能は2023年2月28日に終了しました。

ベストアンサー

id:tezcello No.1

回答回数460ベストアンサー獲得回数69

ポイント100pt

RewriteRule ^([a-z])/(.+) $2?hoge=$1&%{QUERY_STRING}

こんな感じでいかがでしょうか?

RewriteCond での条件分けは必要ないような気がします。

id:masashi0316

ぐぁ!

完璧です。

ありがとうございました。

2007/10/09 09:31:55

コメントはまだありません

この質問への反応(ブックマークコメント)

「あの人に答えてほしい」「この質問はあの人が答えられそう」というときに、回答リクエストを送ってみてましょう。

これ以上回答リクエストを送信することはできません。制限について

回答リクエストを送信したユーザーはいません