13

私の/var/www中にはたくさんのサイト(goodsite、badsite、uglysite)があります。現在mydomain.com/goodsite、などからアクセスされています。

私が望んでいるのは、特定の醜いサイトの1つのサイトにアクセスできるようにするuglysite.mydomain.comことです。他のサイトは、そのままです。

私は.htaccess(in)をいじるさまざまな方法を試しました/var/www。mod-rewriteを有効にし、modvhost-aliasを有効にしていることに注意してください。

RewriteEngine on
RewriteCond %{HTTP_HOST} ^uglysite\.mydomain\.com$ [NC]
RewriteCond %{REQUEST_URI} !^/uglysite/
RewriteRule ^(.*)$ /uglysite/$1 [L]

最終的に発生するのは、mydomain.comとuglysite.mydomain.comの両方が常に同じもの(つまり、のインデックス/var/www)にマップされることです。新しい仮想ホストを追加しようとしましたが、uglysite.mydomain.comが正しくマッピングされていることに驚きましたが、mydomain.comも直接uglysiteにマッピングされました。

<Virtualhost uglysite.mydomain.com:80>
       ServerName uglysite.mydomain.com
       ServerAdmin www@localhost
       DocumentRoot "/var/www/"
       AccessFileName .htaccess
       <Directory "/var/www/uglysite">
               Order allow,deny
               Allow from All
               AllowOverride All
       </Directory>
</VirtualHost>

上記は私のsites-enabled/000-defaultファイルに追加されました。これにより、uglysite.mydomain.comが正しく機能するようになりましたが、mydomain.comは同じものにマップされました。

私がやろうとしていることをする簡単な方法はありますか?前もって感謝します。

4

1 に答える 1

20

000-default を変更する代わりに、uglysite を 2 番目のファイルにする必要があります。

したがって、000-default ファイルのコピーを取り、そこで行ったようにサブドメインを変更し、ディレクトリを /path/to/site に変更します。

000-デフォルト:

<Virtualhost *:80>
       ServerName mydomain.com
       ServerAdmin www@localhost
       ServerAlias mydomain.com
       DocumentRoot "/var/www/goodsite"
       AccessFileName .htaccess
       <Directory "/var/www/goodiste">
               Order allow,deny
               Allow from All
               AllowOverride All
       </Directory>
</VirtualHost>

醜いサイト:

<Virtualhost *:80>
       ServerName uglysite.mydomain.com
       ServerAlias uglysite.mydomain.com
       ServerAdmin www@localhost
       DocumentRoot "/var/www/uglysite"
       AccessFileName .htaccess
       <Directory "/var/www/uglysite">
               Order allow,deny
               Allow from All
               AllowOverride All
       </Directory>
</VirtualHost>

DocumentRootまた、上記のサンプルでは、​​ファイルを提供するディレクトリを指すようにを変更したことに注意してください。

編集:あなたのサイトはとにかくあなた自身のIPを指しているので、virtualhostsは*:80に設定されています

于 2012-07-17T13:13:42.650 に答える