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



在本地,我可以按照以下说明更改apache的根目录。我真正想要的是设置一种方法,让多个项目为每个项目使用不同的根目录。我是在这个问题的帮助下做的。

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

我的问题是,有没有办法"告诉"Apache我有不同的项目,有不同的文档根?我希望有一个解决方案,比如在这个设置下,每个项目都有一个.htaccess文件,但我不确定这是否可能。

有一些"它取决于",所以我将介绍最常见的设置。

1( 如何定义"多个项目"?通常这意味着1个项目==1个域。

  • 您的提供商应该允许您在web空间上设置多个域。然后,每个域都链接到您的网络空间中的一个目录。这会产生费用,用于支付每个域的费用
  • Ex。对于1和1(不是公开的,只是碰巧在他们的设置中有一个网站(:www.example1.com指向/example1,www.example2.com指向/eexample2,等等。这是在他们的管理界面中设置的
  • 这样做相当于设置多个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

玩得开心!

最新更新