2008年7月30日

[Apache-Users 7094] Re:mod_rewrite にて / への全てのアクセスを /bv/ へリダイレクトさせる方法 [ 結果報告 ]

** Apache ユーザーズメーリングリスト **
** 注意:このメールへの返信は Apache-Users へ行きます **

中村@東京です。

皆様、様々なアドバイスを頂き誠に有難う御座います。

その後、テストサーバーにていろいろ検証してみた結果、最終的に実装したい

設定に辿りつきましたのでご報告させて頂きます。

■最終的にやりたかった事

全て(※)のアクセスを /bv/webroot/index.php に URL 変換する。
※ /bv/webroot/ 配下に実在するファイルを除く

--- 例 ---
http://localhost/
 ↓↓↓
/bv/webroot/index.php

http://localhost/hoge/
 ↓↓↓
/bv/webroot/index.php?url=hoge/

http://localhost/hoge/foo/?a=1
 ↓↓↓
/bv/webroot/index.php?url=hoge/foo/?a=1

■設定内容

/ 配下の .htaccess
---
RewriteEngine on
RewriteBase /
RewriteRule ^(?!bv[/$?])(.*) bv/$1 [L]
---

/bv/ 配下の .htaccess
---
RewriteEngine On
RewriteBase /bv
RewriteRule ^(?!webroot[/$?])(.*) webroot/$1 [L]
---

/bv/webroot/ 配下の .htaccess
---
RewriteEngine On
RewriteBase /bv/webroot
RewriteCond %{REQUEST_FILENAME} !-d
RewriteCond %{REQUEST_FILENAME} !-f
RewriteRule ^(.*)$ index.php?url=$1 [QSA,L]
---

[ 備考 ]
田中@tyukio.net 様にアドバイス頂いた ($|/|\?) の部分は、環境のせいか後方参照が
期待通り動作しなかったので [/$?] に変更させて頂きました。


以上、有益な情報有難う御座いました。
--
入退会・変更・配送一時停止は以下へ
http://mm.apache.jp/mailman/listinfo/apache-users


投稿者 xml-rpc : 2008年7月30日 19:11
役に立ちました?:
過去のフィードバック 平均:(0) 総合:(0) 投票回数:(0)
本記事へのTrackback: http://hoop.euqset.org/blog/mt-tb2006.cgi/75832
トラックバック
コメント
コメントする




画像の中に見える文字を入力してください。