Apache 重定向到另一个文件夹,包括文档根目录内和外部

Apache 重定向到另一个文件夹,包括文档根目录内和外部

我最近设置了一个家庭网络/媒体服务器,但一些设置有些困难。它运行良好,可以正常提供网页等服务,但现在我重新组织了主文档根目录的结构,现在很难控制它。

目前的架构是:

-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 来说,这没问题,但对于尝试实现我上面提到的内容来说,就不行了。

这是其中一次尝试:

<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>

谢谢您的帮助,过去几个小时我一直在绞尽脑汁寻找解决办法。

已编辑以回答评论。

The expected input and output would be along the following:

mydomain.com = d:/sites/live/siteA
mydomain.com/siteB = d:/sites/live/siteB
mydomain.com/siteC = d:/sites/live/siteC

and the media server would be:

mydomain.com/media = d:/media

答案1

以下内容已在 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>

测试结果如下:

InputOutput
mydomain.comcontent 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目录导致错误被Directory index forbidden by Options directive:记录在 error.log 中。添加Options +Indexes解决了该问题。找到了此解决方案这里

相关内容