在多个项目的共享主机上设置根目录

时间:2018-07-14 09:59:03

标签: apache server shared-hosting

在本地,我可以在these instructions之后更改apache的根目录。我真正想要的是设置一种方法,使多个项目的每个项目具有不同的根目录。我是在this question的帮助下完成的。

我有一个共享的托管计划(Apache在Linux Ubuntu上运行),我想在一个更像生产环境的环境中测试这些项目。我遇到的问题是,因为无法在此共享主机上配置Apache,所以无法为每个项目配置不同的根目录。

我的问题是,有什么办法可以“告诉” Apache我有不同项目且文件根目录不同的项目?我希望有一个解决方案,例如每个项目都使用此设置来创建.htaccess文件,但是我不确定是否可以这样做。

1 个答案:

答案 0 :(得分:1)

“取决于情况”有一些,所以我将介绍最常见的设置。

1)您如何定义“多个项目”?通常,这意味着1个项目== 1个域。

  • 您的提供商应允许您在Web空间上设置多个域。然后,每个域都链接到您的Web空间中的1个目录。这会产生费用,需要为每个域付费。
  • 例如对于1and1(这不是宣传,只是碰巧在其设置上有一个网站):www.example1.com指向/example1,www.example2.com指向/ example2,依此类推。这是在他们的管理界面中设置的。
  • 执行此操作等同于设置多个VirtualHost部分。

2)1个项目== 1个域名前缀

  • 根据托管者的操作方式,可以将prefix1.example.com指向/ site1,将prefix2.example.com指向/ site2。
  • 用户在其地址栏中永远不会看到/ site1或/ site2。
  • 再次在提供商的管理界面中完成。

3)1个项目==一个域的1个子目录,您无法编辑.htaccess

  • 如果您不介意,则每个项目都可以是您拥有的1个域的子目录。
  • www.example.com/project1,www.example.com/project2,...
  • 您网站的用户必须输入www.example.com/projectX才能访问该项目。它没有隐藏在配置中,用户必须在浏览器地址栏中明确输入所需的项目。
  • 这不需要在Apache或主机级别进行任何配置。只需将不同的目录放在整个域的DocumentRoot目录下即可。
  • 这不能提供站点的“干净”分隔,但这可能足以满足您的需求。

4)类似于3),但是您可以编辑.htaccess文件

  • DocumentRoot目录中创建一个.htaccess文件
  • 在其中,使用Alias告诉Apache,URL中对子目录的请求对应于磁盘上的另一个目录,而不是在DocumentRoot下的其他目录,如3)
  • 这种情况的可能性较小,因为托管服务商可能只会允许您将内容放在DocumentRoot下。
  • 请参见https://httpd.apache.org/docs/2.4/mod/mod_alias.html

玩得开心!