web-dev-qa-db-ja.com

Apache2「疑似」ドキュメントルート

/ wwwフォルダーには、さまざまなアプリケーションを含むフォルダーがいくつかあります。物事を整理するために、私はそれらを独自のフォルダーに保管します-これには私の基本アプリケーションが含まれます。

例:

  1. phpmyadmin =/www/phpmyadmin
  2. phpvirtualbox =/www/phpvirtualbox
  3. ルートドメインサイト=/www/Landing

すべてのサイトを分離する理由は、これらのいくつか(私のルートサイト)で積極的に開発し、Visual Studioを介して公開するとき、アップロードする前に削除することを選択することです-ランディングページをベースフォルダーに入れると、私にとって壊滅的です。

私の目標は、www.example.comにアクセスすると、自分のページに移動することです。 www.example.com/phpmyadminにアクセスすると、Apache2フォルダーでこのために機能しません。

<Location "/"> # Error is the "/"
  Allow from all
  Order allow,deny
  MonoSetServerAlias domain
  SetHandler mono
  SetOutputFilter DEFLATE
  SetEnvIfNoCase Request_URI "\.(?:gif|jpe?g|png)$" no-gzip dont-vary
</Location>
<IfModule mod_deflate.c>
   AddOutputFilterByType DEFLATE text/html text/plain text/xml text/javascript
</IfModule>

場所を「/ Other」と言うように変更すると、ベースサイトが壊れ、他のサイトのエイリアスが復元されます。 「/」の場合、ベースサイトは機能し、エイリアスは機能しません。

/ www/LandingをWebルートとして処理できるようにするにはどうすればよいですか。ただし、エイリアスに移動すると、エイリアスに移動します。

編集:デフォルトのVirtualHost情報に追加。

DocumentRoot /var/www
<VirtualHost *:80>
    ServerAdmin [email protected]
    ServerName www.example.com

ExpiresActive On
ExpiresByType image/gif A2592000
ExpiresByType image/png A2592000
ExpiresByType image/jpg A2592000
ExpiresByType image/jpeg A2592000
ExpiresByType text/css "access plus 1 days"

  MonoServerPath domain "/usr/bin/mod-mono-server4"
  MonoDebug domain true
  MonoSetEnv domain MONO_IOMAP=all
  MonoApplications domain "/:/var/www/Landing"

    RewriteCond %{REQUEST_FILENAME} !-d
    RewriteCond %{REQUEST_FILENAME} !-f
    RewriteRule (.*) /Landing/$1 [L]


#Need to watch what the Location is set to. Can cause issues for alias
<Location "/">
  Allow from all
  Order allow,deny
  MonoSetServerAlias domain
  SetHandler mono
  SetOutputFilter DEFLATE
  SetEnvIfNoCase Request_URI "\.(?:gif|jpe?g|png)$" no-gzip dont-vary
</Location>
<IfModule mod_deflate.c>
  AddOutputFilterByType DEFLATE text/html text/plain text/xml text/javascript
</IfModule>

    ErrorLog ${Apache_LOG_DIR}/error.log

    LogLevel warn
    CustomLog ${Apache_LOG_DIR}/access.log combined
</VirtualHost>
1
Brent

Monoの経験はありませんが、場所を/のままにしておくと他のサイトが機能するはずですが、場所を/Landingとして設定するとベースサイトのみが機能します。

ほとんどの人が行うことは、場所を/のままにして、mod_rewriteを使用して非phpmyadminまたは-phpvirtualboxリクエストを/Landing/ディレクトリにマッピングすることです。

RewriteCond %{REQUEST_FILENAME} !-d
RewriteCond %{REQUEST_FILENAME} !-f
RewriteRule (.*) /Landing/$1 [L]
1
Lèse majesté