当前位置:首页 > 运维技术 > 正文

域名rewrite如何设置?配置方法与重定向规则详解

域名重写(Domain Rewrite)通常是指通过服务器配置将访问某个域名的请求重定向内部转发到另一个域名、子域名或路径的技术,它常用于:

  1. 统一主域名(example.com ↔ www.example.com)
  2. HTTPS 强制跳转(HTTP → HTTPS)
  3. 域名更换(旧域名 → 新域名)
  4. 路径标准化(清理多余 或大写字母)
  5. 隐藏真实后端路径(美化URL)


常见实现方式及配置示例

Nginx 服务器配置

server { listen 80; server_name old.com www.old.com; # 301 永久重定向到新域名(保留路径) return 301 https://new.com$request_uri; } server { listen 80; server_name example.com; # 强制跳转到 HTTPS + www 域名 return 301 https://www.example.com$request_uri; } server { listen 443 ssl; server_name example.com; # HTTPS 跳转到 www 版本 return 301 https://www.example.com$request_uri; }

Apache 服务器(.htaccess)

# 旧域名重定向到新域名 RewriteEngine On RewriteCond %{HTTP_HOST} ^old.com$ [OR] RewriteCond %{HTTP_HOST} ^www.old.com$ RewriteRule ^(.*)$ https://new.com/$1 [R=301,L] # 强制 HTTPS + www RewriteCond %{HTTPS} off [OR] RewriteCond %{HTTP_HOST} !^www. [NC] RewriteRule ^(.*)$ https://www.example.com/$1 [R=301,L]

云服务商快捷设置

  • Cloudflare

    Rules → Redirect Rules → 创建重定向规则(支持通配符 *)

  • AWS S3

    配置静态网站重定向(适用于简单跳转)

  • CDN 服务

    多数 CDN 提供 URL 重写/重定向功能


关键注意事项

  1. HTTP 状态码选择

    • 301 Moved Permanently:永久重定向(SEO 权重传递)
    • 302 Found:临时跳转(不传递 SEO 权重)
    • 307 Temporary Redirect:临时重定向(保留请求方法)
  2. 测试工具

    域名rewrite如何设置?配置方法与重定向规则详解 第1张

    域名rewrite如何设置?配置方法与重定向规则详解 第2张

    curl -I http://example.com # 查看响应头
  3. 避免重定向循环

    确保规则链不会形成 A → B → A 的死循环(如 www 与非 www 互相跳转)。

    域名rewrite如何设置?配置方法与重定向规则详解 第3张

  4. 保留原始路径

    使用 $request_uri(Nginx)或 $1(Apache)传递原始请求路径。

  5. 进阶用法:反向代理(隐藏真实服务)

    # 将 api.example.com 代理到内部服务 server { server_name api.example.com; location / { proxy_pass http://localhost:3000; # 转发到本机3000端口 proxy_set_header Host $host; } }


    常见问题解决

    • 重定向不生效:检查浏览器缓存、清除 DNS 缓存、确认服务器配置已重载。
    • SSL 证书问题:确保目标域名已配置有效 HTTPS 证书。
    • 路径丢失:检查规则中是否包含 $request_uri 或 $1。

    根据你的具体场景(域名迁移、HTTPS 升级、路径调整),选择合适的重定向策略,如果需要更复杂的路径重写(如 /product/123 → /item?id=123),需结合正则表达式设计规则。

0