最近、ホームWeb /メディアサーバーをセットアップしましたが、いくつかの設定でいくつかの問題がありました。 Webページなどを提供するのにうまく機能していますが、メインのドキュメントルートの構造を再編成し、取得するのが難しくなっています。
現在の構造は次のとおりです。
-drive
--sites
---live
----siteA
----siteB
----siteC
---dev
--media
---films
---series
私がやろうとしているのは、siteA/siteCが呼び出されたときにsiteCを提供することです。
たとえば、mydomain.comはsiteAにあるファイルを表示しますが、これで問題ありません。 SiteBとSiteCには独自のドメインなどはありません。それらをSiteAのサブフォルダーにしたくないので、mydomain.com/siteBがsiteBにあり、siteCと同じコンテンツを提供することを望みます。
次に、メディアサーバーに同じ前提を使用して、myDomain.com/mediaがメディアディレクトリ内のファイルのディレクトリ一覧を表示するようにします。
apache内のドキュメントルートはd:/ sites/liveであり、仮想ホストを使用して何が起こるかを判断しています。これは標準のmydomanA.comまたはmyDomainB.comでは問題ありませんが、上記のことを達成しようとする場合はそうではありません。
これは試行の1つです。
<VirtualHost *:80>
DocumentRoot "D:/Sites/Live/siteA"
ServerName www.mydomain.com/siteA
<Directory "D:/Sites/Live/siteA">
Order allow,deny
Allow from all
AllowOverride All
</Directory>
代わりにエイリアスを使用した別の失敗した試み:
<VirtualHost *:80>
DocumentRoot "D:/Sites/Live/siteA"
ServerName www.mydomain/siteA
<Directory "D:/Sites/Live/siteA">
Order allow,deny
Allow from all
AllowOverride All
</Directory>
Alias /siteA D:/sites/live/siteA
<directory "D:/sites/live/siteA">
Order allow,deny
AllowOverride All
</directory>
</VirtualHost>
助けてくれてありがとう、私は解決策を見つけようとして過去数時間髪を引っ張ってきました。
コメントに答えるために編集されました。
予想される入力と出力は次のとおりです。
mydomain.com = d:/sites/live/siteA
mydomain.com/siteB = d:/sites/live/siteB
mydomain.com/siteC = d:/sites/live/siteC
メディアサーバーは次のようになります。
mydomain.com/media = d:/media
ユーザー serverfaultのutrecht この回答の投稿:
以下は、Scientific Linuxでテスト済みです。
<VirtualHost *:80>
DocumentRoot "/var/www/html/siteA"
Alias /siteB/ "/var/www/html/siteB/"
<Directory "/var/www/html/siteB/">
Order allow,deny
Allow from all
AllowOverride All
</Directory>
Alias /siteC/ "/var/www/html/siteC/"
<Directory "/var/www/html/siteC/">
Order allow,deny
Allow from all
AllowOverride All
</Directory>
Alias /media/ "/media/"
<Directory "/media/">
Options +Indexes
Order allow,deny
Allow from all
AllowOverride All
</Directory>
</VirtualHost>
テスト結果は次のとおりです。
Input
Output
mydomain.com
content of siteA
mydomain.com/siteA/
404
mydomain.com/siteB/
content of siteB
mydomain.com/siteC/
content of siteC
mydomain.com/media/
content of media
注:/media
ディレクトリにアクセスすると、error.logによってDirectory index forbidden by Options directive:
がログに記録されます。 Options +Indexes
を追加すると、問題が解決しました。この解決策が見つかりました こちら 。