そのApacheがここでやろうとしていることを許可しない場合の私の答えですが、それは、本当に必要なことを行うためにこれを行う必要がないためです。
構成面で (リモート) サーバーベースのテスト環境を反映するローカル環境を作成しようとしているかのようです。ただし、URI 名前空間とファイル システムの名前空間を混同しており、Apache サーバーではこれらはまったく異なります。たとえば、<Location>
ディレクティブは前者で<Directory>
動作し、ディレクティブは後者で動作します。 .htaccess
両方を横断するようなものなので、パラメーターがどちらか一方に作用するタイミングを理解する必要があります。
たとえば、いくつかのサブドメインにサービスを提供する共有サービス アカウントがあります。*.ellisons.org.uk
たとえば、私のブログはhttp://blog.ellisons.org.uk/にあります。Ubuntu ラップトップと、サービス プロバイダーが運用する LAMP/suPHP 構成をミラーリングする VM で開発しています (ただし、ルート アクセス権があり、VM の書き換えログなどを確認できます)。192.168.1.0/24
プライベート アドレス空間に IP アドレスを静的に割り当てます。と/etc/hosts
同義語があります
127.0.1.1 ... blog.ellisons.org.home forum.ellisons.org.home ...
192.168.1.250 ... blog.ellisons.org.vm ...
ただし、これ以外の URI スペースは同一であるため、blog.ellisons.org.XX/themes/terry/all.css
XX=uk、home、vm のいずれかに応じて、サーバー、ラップトップ、または VM から CSS をロードします。
ただし、私のラップトップの docroot は Debian standard/var/www
ですが、他の 2 つではそうです/websites/LinuxPackage02/el/li/so/ellisons.org.uk/public_html
(私のホスティング会社の命名規則)。それでも、ファイルを含む私のアプリケーション.htaccess
は同一であり、これらがこの複数の使用を反映する唯一の方法は、 %{HTTP_HOST} と一致する正規表現として使用する正規表現(\w+)\.ellisons.\org\.(?:uk|home|vm)
です。
だからあなたの例に:
- 要求をローカル PC
/app
の物理ディレクトリに向けることを止めるものは何もありません。これを行うには、サーバーまたは vhost 構成でディレクティブを/codeigniter-app
使用できます。Alias
RewriteBase
は URI パス引数を取るので/app
、両方で機能します。
RewriteCond
一般に、Apache は URI ドメインと FS ドメインの違いを理解しており、混乱することはありません。開発者でさえ、よく混乱します:-) %{DOCUMENT_ROOT}
-- ただし、サービスが共有サービスの場合は、代わりに環境変数を使用する必要がある場合があります (私の場合は%{ENV:DOCUMENT_ROOT_REAL}
)。I phpinfo() がどちらかを教えてくれます。
- 置換には必ず相対アドレスを使用してください
RewriteRule
(先頭のスラッシュは使用しないでください)。
要約すると、少し考えれば、Apache が提供するものと論理的に同一の構成を作成できます。それは、製品に設計されていない方法で条件付き実行を台無しにしようとするよりはましではないでしょうか?