如何向 apache 中现有的虚拟主机添加新主机名?

如何向 apache 中现有的虚拟主机添加新主机名?

这是我的 apache 配置(其中最有趣的部分):

<VirtualHost *:80>
  ServerName example.com
  ...
</VirtualHost>

运行良好,我的服务器正确响应example.com:80HTTP 请求。现在我要为该域添加一个别名。我希望所有请求都my-new-domain.com:80/test产生与 相同的响应example.com,例如:

my-new-domain.com/test/xyz -> example.com/xyz

重要的是,我不想看到 HTTP 重定向(301 代码)。我想example.com对用户隐藏 URL。他所能看到的全部就是my-new-domain.com/testURL。

答案1

ServerAlias my-new-domain.com

在 VirtualHost 部分中

重写

RewriteCond %{HTTP_HOST}   ^my-new-domain\.com
RewriteRule /test/(.*)     /$1                   [QSA,L,P]

答案2

将 mod_rewrite 与 mod_proxy 结合使用(https://httpd.apache.org/docs/2.2/mod/mod_rewrite.html)。否则,如果域不同,即使两个域都由同一主机提供服务,mod_rewrite 也会执行外部重写。

就像是

重写规则 ^http://my-new-domain.com/test http://example.com[QSA,P]

另一个解决方案是test在 my-new-domain.com 的根目录中创建到 example.com 根目录的符号链接。

相关内容