如何将一个域名所有请求重定向到另一域名并保留URL路径及SSL?
重定向实现方案
下面提供两种可直接落地的配置方式,任选其一即可:
方案1:通过Laravel Forge重定向UI配置
- 进入Forge后台,找到
foo.mysite.com对应的站点管理页 - 点击侧边栏「重定向」菜单进入配置页
- 重定向类型选择
永久(301) - 「来自」输入框填写
/ - 「到」输入框填写
https://bar.mysite.com$request_uri - 勾选「匹配通配符」选项
- 保存配置后等待1-2分钟即可生效
方案2:自定义Nginx配置实现
- 进入Forge后台
foo.mysite.com站点的管理页,找到「Nginx配置」编辑入口 - 找到
foo.mysite.com对应server块中监听443端口的SSL配置段,保留原有SSL证书相关配置不动,新增重定向规则即可,参考配置如下:
server { listen 443 ssl http2; server_name foo.mysite.com; # 这里保留原有自动生成的SSL证书、安全头之类的配置不要修改 ssl_certificate /etc/nginx/ssl/foo.mysite.com/xxxx/server.crt; ssl_certificate_key /etc/nginx/ssl/foo.mysite.com/xxxx/server.key; # 新增下面这一行重定向规则即可 return 301 https://bar.mysite.com$request_uri; }
- 保存配置后点击重启Nginx按钮,生效后即可正常跳转
两种方案都会完整保留原访问路径、查询参数,完全符合你要求的全路径永久重定向规则,301状态码也会通知搜索引擎更新域名收录,适配站点迁移的场景。
内容的提问来源于stack exchange,提问作者Inigo
相关产品推荐
相关产品推荐

