サブドメインサイトをプライマリドメインに移動する - Apache仮想ホストがソースファイルにリダイレクトされない

サブドメインサイトをプライマリドメインに移動する - Apache仮想ホストがソースファイルにリダイレクトされない

wiki.mysite.comDebian では、プライマリサイトサブドメインの Wiki サイトをサイトパス: to に移動しようとしますmysite.com/wiki

2つのDNSレコードがあり、Apacheの下に2つのconfファイルがwiki.mysite.comあります。mysite.com

  • wiki.mysite.com.conf

  • mysite.com.conf

そしてウェブサイトのディレクトリがあります:

  • /var/www/html/www.mysite.com

  • /var/www/html/www.wiki.mysite.com

すべてがうまくいきます。これで、Wikiサイトを自分のプライマリサイトへのパスに移動する必要があります。www.mysite.com/wiki...次のアップデートを試しましたが、mysite.com.confApacheの再起動後にアクセスしようとすると、「見つかりません:要求されたURLがこのサーバーに見つかりません」というメッセージが表示されます。mysite.com/wiki(しかしmysite.comうまくいきます)。私は助けます。何をしますか? :

<VirtualHost *:80>

Server Admin webmaster@localhost
ServerName mysite.com
ServerAlias www.mysite.com

DocumentRoot /var/www/html/www.mysite.com

<Directory /var/www/html/www.mysite.com/>
AllowOverride All
</Directory>
<VirtualHost>

<VirtualHost *:80>
Server Admin webmaster@localhost
ServerName mysite.com/wiki
ServerAlias www.mysite.com/wiki

DocumentRoot /var/www/html/www.wiki.mysite.com

<Directory /var/www/html/www.wiki.mysite.com/>
AllowOverride All
</Directory>

<VirtualHost>

2番目の仮想ホストのみを追加しました。最初の仮想ホストは、元のサイトをサブドメインサイトに設定したときに存在しました。繰り返すと、最初の仮想ホストはまだ機能します。

答え1

あなたが探しているのはaliasアイテムです。エイリアスは、URLの特定のサブパスの代替場所を指定します。このために複数の仮想ホストを使用する必要はありません。

これApacheドキュメントですalias。ここでは、次の情報が提供されます。

このモジュールに含まれているディレクティブを使用すると、要求がサーバーに到着したときにURLを操作および制御できます。 AliasとScriptAliasの指示は、URLとファイルシステムのパスをマッピングするために使用されます。これにより、DocumentRootのすぐ下にないコンテンツがWebドキュメントツリーの一部になる可能性があります。

www.wiki.mysite.comのサイト文書が絶対URLを参照している場合(例:を指している場合)、これが行われることに注意してください/index.phpmysite.com/index.phpmysite.com/wiki/index.php

<VirtualHost *:80>

Server Admin webmaster@localhost
ServerName mysite.com
ServerAlias www.mysite.com

DocumentRoot /var/www/html/www.mysite.com
Alias /wiki /var/www/html/www.wiki.mysite.com

<Directory /var/www/html/www.mysite.com/>
    AllowOverride All
</Directory>

<Directory /var/www/html/www.wiki.mysite.com/>
    AllowOverride All
</Directory>

</VirtualHost>

関連情報