如何将 URL 路径映射到我的服务器上的目录?

如何将 URL 路径映射到我的服务器上的目录?

目前我有一个目录,包含各种面向 Web 的产品,例如 Drupal 网站、wiki 等等,类似于这样。

/srv/www

/srv/www/blog

/srv/www/wiki

/srv/www/sometestphpapp

目前,我有一个 apache2 虚拟主机配置,/sites-available只需将 ServerName 设置为域,mydomain.com将 docroot 设置为域/srv/www,并设置基本身份验证。如果我想提出或演示我正在处理的事情,我会引导人们到该网站,他们只需浏览 apache 提供的目录结构即可。

我想做的是设置一个设置,/srv/www通过将它们映射到具有自己的基本身份验证的 URL 路径,我可以控制哪些子目录可供人们使用。例如,/srv/www/blog可以在mydomain.com/blog

我是否需要为要提供的每个文件夹进行单独的配置,更重要的是,指令看起来像什么,以映射mydomain.com/blog/srv/www/blog,并说,mydomain.com/wiki/srv/www/wiki

答案1

对于开发/演示,我发现最好在 Apache 中使用通配符 DNS 条目(如 *.mydevcompany.com)设置单独的站点,以解析到我的暂存 Web 服务器的公共 IP。

这可以完成几件事:

  • 有些 Web 应用不喜欢放在子目录中
  • 提高应用程序之间的安全隔离(即一个应用程序中的目录遍历漏洞可能会危及另一个应用程序)
  • 更容易设置备份并将客户端数据分开
  • 更容易配置 SSL 和非 SSL 站点而不会发生冲突

使用通配符 DNS,您只需在 Apache 中创建站点配置,通配符 DNS 就会完成所有工作:

ServerName someclient.mydevcompany.com
ServerAlias someclient.mydevcompany.com
DocumentRoot /srv/www/someclient.mydevcompany.com

注意:我还喜欢为每个站点创建单独的配置文件sites-available,以保持其井然有序。

相关内容