我正在尝试使用Apache在一个域上运行两个应用程序,主应用程序位于域“root”www.sitename.com
,而子应用程序位于www.sitename.com/blog
。
目前我正试图以这种方式实现它:
<VirtualHost *:80>
ServerName www.sitename.com
DocumentRoot /var/www/sitename/main/public/
Alias /blog /var/www/sitename/blog/
</VirtualHost>
目前这适用于博客应用的根目录。转到www.sitename.com/blog
加载博客根目录,然后转到www.sitename.com
获取主应用程序。成功检索静态文件。
但是,/blog
以外的任何网址,例如/blog/postname
由主应用处理并获得404。
我还尝试使用AliasMatch
专门向博客应用/blog
发送index.php
个请求。这有助于避免在更深层网址上使用404,但是对博客应用程序的静态文件的请求中断了。
如果可能的话,我想要的是:
<VirtualHost *:80>
ServerName www.sitename.com
DocumentRoot /var/www/sitename/public/
</VirtualHost>
<VirtualHost *:80>
ServerName www.sitename.com/blog
DocumentRoot /var/www/sitename/blog/
</VirtualHost>
即,所有对/blog
的请求只是被路由到/blog/
目录并从那里处理。但你无法用虚拟主机那样做。
应该如何实现?
答案 0 :(得分:0)
如果可以的话,我可能只是重定向/博客到blog.sitename.com并在那里托管你的博客。这样可以处理相对与绝对链接,并解决在单个根上拥有两个应用程序的问题。当然,它们仍然可以位于同一台服务器上,只是位于不同的VirtualHosts中。
如果您不能或不想,Alias应该可以使用。不过,我会确保斜线匹配。所以Alias /blog/ /var/www/sitename/blog/
或Alias /blog /var/www/sitename/blog