nginx - 使用 Nginx 将旧域重定向到新域,具有相同的子域和 URI
问题描述
我们有两个指向同一服务器的域。我们最近使用了一个品牌,因此我们希望拥有它,以便 URL 从 old_domain.com 更改为 new_domain.com。
我也想拥有它,以便用户最初输入的子域和 URI 也被使用。
例如 -
https://beta.old_domain.com/my_profile
redirects to
https://beta.new_domain.com/my_profile
我尝试了几种解决方案,但正在努力让它发挥作用。最新的我是这样的——
/etc/nginx/sites-available/old_domain.com
server {
listen 80;
listen 443 ssl;
server_name old_domain.com;
if ($host ~ (.*)\.old_domain\.com(.*)) {
set $subdomain $1;
return 301 $subdomain.new_domain.com$request_uri;
}
}
解决方案
我通过创建两个不同server
的块来做到这一点,一个用于主域,另一个用于重定向子域上的请求:
server {
server_name old-domain.com;
return 301 $scheme://new-domain.com$request_uri;
}
server {
server_name ~^(?<name>\w+)\.old-domain\.com$;
return 301 $scheme://$name.new-domain.com/;
}
推荐阅读
- c# - 为什么此选择器未按预期选择项目?
- python - 更改变量以供以后在 Python 中使用
- python-3.x - 在定位地震时减少循环计算中使用的时间和内存
- postgresql - 如何转储用于 PostgreSQL 数据库的 Google Cloud SQL 以导入回常规 PostgreSQL 数据库?
- powerbi - 将默认下拉值更改为当前年份
- c++ - 为什么 C++ 不喜欢这种字符串语法?
- c# - 使用网络表单和 EPPlus 下载文件
- wix - WiX 有条件地更改产品名称
- custom-element - reportValidity() 与表单相关的 customElement 失败
- validation - 如何根据单元格值显示隐藏行?