複数のプロジェクトに使用するVM)にLAMPセットアップがあります。ドキュメントルートは/ wwwであり、その中にプロジェクトごとにフォルダーを作成します。
/www/project1-name/
/www/project2-name/
私は次のようにブラウザでそれらにアクセスします:
http://dev.vm/project-name/
Htaccessファイルとインデックスファイルをプロジェクト内のパブリックフォルダーに移動して、本番環境のセットアップとより正確に一致させたいと思います。
/www/project-name/public/
...ただし、上記と同じURLでアクセスします。各プロジェクトのドキュメントルートとしてパブリック/フォルダーを検索するようにApacheを構成するにはどうすればよいですか?
注:プロジェクトごとにホストと仮想ホストのエントリを作成して独自のドキュメントルートを作成できることは理解していますが、それを回避しようとしています-リモートサーバーで同様の設定を使用してサブドメインに複数のプロジェクトを収容する予定があるためです「デモ」と呼ばれます。
Mod_aliasをさらに一歩進めて、 AliasMatch ディレクティブを使用します。 EightbitTonyのソリューションと同じように機能するはずですが、追加の正規表現パワーを提供します。
私は少しテストをしました、そしてこれはそれがそれをするべきであるように見えます。
AliasMatch ^/([a-zA-Z0-9_-]+)/(.*) /www/$1/public/$2
書き直したくないと思います。古き良きAliasステートメントが欲しいだけではありませんか?
から http://httpd.Apache.org/docs/2.0/mod/mod_alias.html 、
Description: Maps URLs to filesystem locations
Syntax: Alias URL-path file-path|directory-path
Context: server config, virtual Host
Status: Base
Module: mod_alias
そう、
Alias /project-name/ /some/path/to/project-name/public/
Alias /project-name2/ /some/path/to/project-name2/public/
Alias /project-3/ /another/totally/different/path/public/
Apache 動的に構成された大規模仮想ホスティング ドキュメントをご覧ください。膨大な数の仮想ホストがあるようには思えないので、VirtualDocumentRoot
と関連する構成ディレクティブはおそらくあなたが望むことをするでしょう。
VirtualDocumentRoot /www/%2/public
これは/www/project-name/public
にマップされます。 %n
パラメータはURLから 補間 で、%0が全体、%1が最初の部分などです。