You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何不修改URL跨域名展示内容并适配多语言路径映射?

嘿,这个需求其实很常见,用反向代理结合URL重写就能完美解决!我给你准备了两种主流服务器的配置方案,你根据自己用的Apache或者Nginx来选就行:

方案一:Nginx 配置(性能更优,推荐)

如果你的服务器用的是Nginx,直接修改站点配置文件就行:

server {
    listen 80;
    server_name second-site.com;

    # 多语言路径映射:内部把/uber-uns重定向到/about,浏览器URL完全不变
    rewrite ^/uber-uns$ /about last;

    # 反向代理核心配置:访问second-site的/about时,转发到first-site的对应内容
    location /about {
        proxy_pass http://first-site.com/about;
        # 传递必要的请求头,让first-site能正确处理请求
        proxy_set_header Host first-site.com;
        proxy_set_header X-Real-IP $remote_addr;
        proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
        # 确保静态资源(比如图片、CSS)能正确加载
        proxy_set_header Referer http://first-site.com;
    }
}

关键说明:

  • rewrite ^/uber-uns$ /about last:这是内部重写,用户访问second-site.com/uber-uns时,浏览器URL还是显示/uber-uns,但服务器内部会把请求转到/about路径。
  • proxy_pass:把处理后的/about请求转发到first-site.com/about,全程用户看不到URL变化,只会看到first-site的内容。
  • 如果用HTTPS,记得把listen 80改成listen 443 ssl,并添加SSL证书相关配置。
方案二:Apache 配置(用.htaccess)

如果你的服务器是Apache,而且有权限用.htaccess,直接在second-site.com的根目录上传一个.htaccess文件:

# 开启重写引擎
RewriteEngine On

# 多语言路径映射:内部重写/uber-uns到/about,URL保持不变
RewriteRule ^uber-uns$ /about [L]

# 反向代理:把/about请求转发到first-site的对应路径,URL不变
# 带QSA参数是为了保留查询字符串(比如/about?foo=bar这种情况)
RewriteRule ^about(.*)$ http://first-site.com/about$1 [P,L,QSA]

关键说明:

  • [L]:表示这是最后一条规则,避免后续规则干扰。
  • [P]:启用Apache的反向代理功能,需要确保服务器已经开启了mod_proxy和mod_proxy_http模块。
  • [QSA]:保留请求中的查询参数,比如用户访问second-site.com/about?id=1,会正确转发到first-site.com/about?id=1。
注意事项
  • 确保两个域名所在的服务器网络互通,不然反向代理会失败。
  • 如果first-site有防盗链或者IP限制,需要把second-site的服务器IP加入白名单。
  • 测试的时候可以用浏览器的开发者工具查看“网络”请求,确认请求的目标是否正确,同时URL栏是否保持不变。

内容的提问来源于stack exchange,提问作者October Eleven

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.05.20 11:13:49