【问题标题】: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 文件
玩得开心!