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」受け取り)
といった感じでかんとかできたのですが、
両者を受け取る方法がわかりません。
ご教授いただけませんでしょうか?
RewriteRule ^([a-z])/(.+) $2?hoge=$1&%{QUERY_STRING}
こんな感じでいかがでしょうか?
RewriteCond での条件分けは必要ないような気がします。
ぐぁ!
完璧です。
ありがとうございました。