【问题标题】:Set root directory on shared hosting for multiple projects为多个项目在共享主机上设置根目录
【发布时间】:2018-12-22 13:22:19
【问题描述】:

在本地,我可以在these instructions之后更改apache的根目录。我真正想要的是建立一种方法,让多个项目具有不同的根目录,每个项目都有不同的根目录。我在this question 的帮助下做到了这一点。

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

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

【问题讨论】:

    标签: apache server shared-hosting


    【解决方案1】:

    有一些“视情况而定”,所以我将介绍最常见的设置。

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

    • 您的提供商应该允许您在您的网络空间上设置多个域。然后,每个域都链接到您网络空间中的 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

    玩得开心!

    【讨论】:

      猜你喜欢
      • 2018-08-17
      • 1970-01-01
      • 1970-01-01
      • 2017-05-15
      • 2018-04-04
      • 1970-01-01
      • 2019-06-27
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多