VirtualDocumentRoot
で設定した値を使用したいと思いますRewriteRule
。
Apacheのドキュメントには次のように書かれています:
もう 1 つ決定する必要があるのは、ドキュメント ルートです (DocumentRoot で構成され、DOCUMENT_ROOT 環境変数を介して CGI スクリプトで使用できます)。通常の構成では、これは URI をファイル名にマッピングするときにコア モジュールによって使用されますが、サーバーが動的仮想ホスティングを行うように構成されている場合、そのジョブは別のモジュール (mod_vhost_alias または mod_rewrite) によって引き継がれる必要があります。マッピングの方法。これらのモジュールはどちらも DOCUMENT_ROOT 環境変数の設定を担当していないため、CGI または SSI ドキュメントがそれを使用すると、誤解を招く値が取得されます。
ドキュメントを参照すると、 では使用できないよう%{DOCUMENT_ROOT}
ですRewriteRule
。しかし、別の解決策を探したところ、「2.4.1 で修正済み」というこのチケット(タイトル: DOCUMENT_ROOT 環境変数が VirtualDocumentRoot で正しく設定されていない) を見つけました。
Apache の最新 (安定) バージョンを使用しています。
$ httpd -v
Server version: Apache/2.4.9 (Unix)
Server built: Jun 18 2014 03:07:48
...しかし、それは私にはうまくいかないようです。テスト時に%{DOCUMENT_ROOT}
は、httpd.conf の DocumentRoot によって設定されたデフォルト値があります。%{DOCUMENT_ROOT}
(または使用できる他の変数)を動的に設定したいと思いVirtualDocumentRoot
ます。
httpd-vhosts.confで使用したいものは次のとおりです。
<VirtualHost *:8080>
ServerName dev
ServerAlias *.dev
VirtualDocumentRoot "/usr/local/var/www/.dev/%-2+"
RewriteRule ^/(.*\.php(/.*)?)$ "fcgi://127.0.0.1:9000%{DOCUMENT_ROOT}/$1" [P]
</VirtualHost>
解決策はありますか?