Ubuntu 14.04とApache 2.2を搭載したDigitalOceanドロップレット(VPSサーバーなど)があります。
私は4つの仮想ホストを構成していて、4つの異なるドメインが4つの異なるフォルダーを指しているため、問題ありません。
PrestaShopインストールを含む5番目のドメイン(
www.someshop.tld
と呼びましょう)を指定する必要がありました。
次の
Alias
を
apache2/sites-available/domain1.conf
ファイルに追加して、
www.domain1.tld/someshop
が
www/prestashop
につながるようにしました。
<VirtualHost *:80>
ServerName www.domain1.tld
DocumentRoot /www/directory1
Alias /someshop /www/prestashop #Alias line
</VirtualHost>
これは一時的な手段として行ったので、作業サイトを公にアクセスできるようにしました(そのため、
www/prestashop
のDNS設定、「A」レコード、ネームサーバーなどを構成する前に
www.someshop.tld
に公にアクセスできました)。
これを行う必要がなくなったので、
Alias
ファイルから
.conf
行を削除して、次のようにします。
<VirtualHost *:80>
ServerName www.domain1.tld
DocumentRoot /www/directory1
</VirtualHost>
次のような新しい
someshop.conf
を追加しました。
<VirtualHost *:80>
ServerName www.someshop.tld
DocumentRoot /www/prestashop
</VirtualHost>
次に、
.conf
の両方の
apache2/sites-enabled
ファイルを再度有効にし、
service apache2 restart
でApacheを再起動しました。
ただし、
www.someshop.tld
にアクセスすると、引き続き
www.domain1.tld/prestashop
へのURLリダイレクトが実行されます(このメッセージが表示されます:「見つかりません、要求されたURL
/someshop
はこのサーバーで見つかりませんでした」)。
「伝播」の問題かもしれないと思ったので、この質問を投稿する前に数時間待ちました。これまでのところ、まだこれを行っています。
私の質問:これはそれを待つことで解決する必要があるものですか、それとも他の何かを修正する必要がありますか?たとえば、古いvirtualhost
Alias
情報をフラッシュする方法はありますか?
あなたはApacheの設定からサイトを削除しようとしましたか?
$ sudo a2dissite test.com.conf #Remove symlink
$ sudo service apache2 reload
これにより、シンボリックリンクが削除されます。その後、希望する適切な構成でシンボリックリンクを再度作成できます。