如何从 example.com 移动到 app.example.com

Posted

技术标签:

【中文标题】如何从 example.com 移动到 app.example.com【英文标题】:How to move from example.com to app.example.com 【发布时间】:2021-06-11 11:55:46 【问题描述】:

我有一个 Laravel 应用程序在 bitnami 的 AWS LightSail LAMP 堆栈上运行。该站点可从 example.com 访问。现在我想将该应用 example.com 移动到 app.example.com 。 example.com 稍后将用于服务于公司简介/产品组合营销目的。

当前代码库位于 /opt/bitnami/apache/htdocs/ 目录下,而不是任何子目录下。

我的查询是:

如何实现上述域结构,以便将来在必要时添加更多子域? 是否需要对 DNS 记录进行任何更改?

【问题讨论】:

【参考方案1】:

Bitnami 工程师在这里!

默认情况下,服务器被配置为在访问/opt/bitnami/apache/htdocs/目录时分发它。

话虽如此,我通常喜欢为主应用程序(或在您的情况下为主域)保留该路径并为子应用程序设置另一个目录,/opt/bitnami/projects/PROJECT_NAME(我将使用 sub ,代表子应用?)。

$ sudo mkdir -p /opt/bitnami/project/sub/htdocs
# Add the code of your sub site here
$ sudo cat | sudo tee index.html > /dev/null << EOF
<!DOCTYPE html>
<html>
<body>
<h1>My First Heading</h1>
<p>My first paragraph.</p>
</body>
</html>
EOF

为了添加更多子域,您需要创建新的VirtualHosts(在/opt/bitnami/apache/conf/vhosts/ 中)来处理与这些特定子域匹配的请求。该堆栈附带VirtualHosts 的示例文件,因此您只需根据需要复制和定制它们:

$ cd /opt/bitnami/apache/conf/vhosts/
$ sudo cp sample-vhost.conf.disabled sub-vhost.conf
$ sudo cp sample-https-vhost.conf.disabled sub-https-vhost.conf

编辑这些文件以设置 ServerAlias 指令以匹配您的子域,您应该准备好了!

$ cat sub-vhost.conf
<VirtualHost 127.0.0.1:80 _default_:80>
  ServerAlias sub.myapp.com
...

【讨论】:

遵循本指南能够提供来自 sub.myapp.com 的内容。但现在的问题是,如果从 myapp.com 访问,我会从 sub.myapp.com 看到相同的内容。

以上是关于如何从 example.com 移动到 app.example.com的主要内容,如果未能解决你的问题,请参考以下文章

从 URL 中删除目录

如何使用 nginx 将 example.com 重定向到 example.com/#/?

如何在没有任何用户交互的情况下进行服务器到服务器的文件传输?

从 example.com 重定向到 www.example.com

将请求从 example.com:8000(旧 REST API)转发到 AWS 上的 api.example.com(新 REST API)

如何将自定义帖子类型的帖子重定向到一个网址?