我的目标是设置一个 Web 服务器,将 http 请求重定向到另一台服务器。例如,当 URL/域发生变化时。
我想为旧域名创建一个 CNAME 记录到重定向服务器(我想在这里设置),然后此服务器重定向到新域名。我让它在一个域名上工作 - 但我只得到第一个重定向。我无法区分服务器名称中的不同主机名。
无论调用什么域,我都只能重定向到第一个主机(尽管服务器名称不匹配)https://newhost.example.com/。
我的配置如下。
#first host
<VirtualHost *:80>
ServerName test1.example.com
redirect 301 / https://newhost.example.com/
</VirtualHost>
#second host
<VirtualHost *:80>
ServerName test2.example.com
redirect 301 / https://different.example.com/
</VirtualHost>
目前仅在 http 上进行测试,之后希望实现 https。;-)
答案1
通过切换到模块 mod_rewrite 修复了这个问题并使用了以下配置:
<VirtualHost *:80>
ServerName test1.example.com
RewriteEngine On
RewriteCond %{HTTP_HOST} test1\.example\.com$ [NC]
RewriteRule ^ https://newhost.example.com%{REQUEST_URI} [L,R=301,NE]
</VirtualHost>