【问题标题】:Apache 2 how to set multiple websites with the same domain?Apache 2 如何将多个网站设置为同一个域?
【发布时间】:2020-07-14 18:23:56
【问题描述】:

我有一个域:example.com,我需要有 2 个不同的站点使用这个域,如下所述。

站点 1:example.com

站点 2:example.com/site2

我尝试为每个站点做一个虚拟主机,如下所示:

站点 1 虚拟主机:

<VirtualHost *:80>

ServerAdmin webmaster@localhost
ServerName example.com
DocumentRoot /var/www/html/site1/

<Directory /var/www/html/site1>
Options Indexes FollowSymLinks
AllowOverride All
Require all granted

</Directory>

</VirtualHost>

站点 2:

ServerAdmin webmaster@localhost
ServerName example.com/site2
DocumentRoot /var/www/html/site2/

<Directory /var/www/html/site2>
Options Indexes FollowSymLinks
AllowOverride All
Require all granted

</Directory>

</VirtualHost>

但是它不起作用,当我输入 example.com 时,它会将我重定向到 example.com/site2 但它显示页面未找到,例如尝试搜索 example.com 下的页面 /site2,我需要将其分隔为 2网站。

希望有人可以帮助我。 我在网站上使用 wordpress 和 magento。 example.com 有 Magento 2,example.com/site2 有 wordpress

谢谢!

【问题讨论】:

  • 你选错了ServerName example.com/site2,也许可以试试site2.example.com,如果你在子文件夹中需要另一个项目,请查看stackoverflow.com/a/6308164/5274713
  • 您好,所以我实际上需要移动站点 1 中的所有安装文件夹?

标签: apache virtualhost


【解决方案1】:

域名不能有斜线,以斜线开头的信息开始于 URL 的路径部分,它沿着网站树向下导航。

如果您在同一个域名下有两个站点,则处理此问题的正确方法是通过子域。在您的示例中,这将是:

example.com
site2.example.com

您需要更新域的 DNS 记录,在本例中,在 example.com 的域记录中,site2 需要有一个新的 A 记录。

然后在 Apache 上,你做的很好,你只需要更改 site2 的 ServerName:

ServerName site2.example.com
DocumentRoot /var/www/html/site2/

这两个站点不需要在同一个文件结构中(它们甚至不需要在同一个服务器上)。

【讨论】:

    猜你喜欢
    • 2012-04-28
    • 1970-01-01
    • 1970-01-01
    • 2018-09-06
    • 2011-11-26
    • 2017-02-23
    • 2012-08-25
    • 2012-08-08
    • 1970-01-01
    相关资源
    最近更新 更多