人力検索はてな
モバイル版を表示しています。PC版はこちら
i-mobile

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」受け取り)

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


●質問者: masashi0316
●カテゴリ:インターネット ウェブ制作
✍キーワード:CGI Dir hoge PHP REQUEST_URI
○ 状態 :終了
└ 回答数 : 1/1件

▽最新の回答へ

1 ● tezcello
●100ポイント ベストアンサー

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

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

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

◎質問者からの返答

ぐぁ!

完璧です。

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

関連質問


●質問をもっと探す●



0.人力検索はてなトップ
8.このページを友達に紹介
9.このページの先頭へ
対応機種一覧
お問い合わせ
ヘルプ/お知らせ
ログイン
無料ユーザー登録
はてなトップ