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

多域名URL重写需求:跳转后保持URL不变的规则配置

解决方案

针对你的需求,需要在共享目录的配置文件(比如Apache的.htaccess,或Nginx的server配置块)中补充针对subdomain2.domain.com的内部重写规则,实现URL masking(地址栏显示短路径,实际加载长路径内容)。

Apache 完整配置(mod_rewrite)

如果用的是Apache,直接在.htaccess中替换原有规则,加入以下完整配置:

# 规则1:将subdomain1的长路径跳转至subdomain2的短路径(地址栏同步更新)
RewriteCond %{HTTP_HOST} ^subdomain1\.domain\.com$ [NC]
RewriteCond %{REQUEST_URI} ^/subdomain-category/(.*)$ [NC]
RewriteRule ^(.*)$ https://subdomain2.domain.com/%1 [R=302,NC]

# 规则2:subdomain2上内部重写短路径到实际长路径(地址栏不变)
RewriteCond %{HTTP_HOST} ^subdomain2\.domain\.com$ [NC]
RewriteCond %{REQUEST_URI} !^/subdomain-category/ [NC]
RewriteRule ^(.*)$ /subdomain-category/$1 [L,NC]

关键说明

  1. 规则1调整:把原跳转目标从/subdomain-category/%1改为/%1,确保跳转后地址栏直接显示短路径https://subdomain2.domain.com/subdomain-article。
  2. 规则2核心:
    • 先匹配subdomain2.domain.com的请求
    • 排除已包含/subdomain-category/的路径,避免循环重写
    • 将短路径(如/subdomain-article)内部映射到实际存在的长路径,这个过程仅在服务器内部处理,浏览器地址栏完全不变。

Nginx 对应配置

如果用的是Nginx,分两个server块配置:

# 处理subdomain1的跳转逻辑
server {
    listen 443 ssl;
    server_name subdomain1.domain.com;
    # 此处补充SSL证书等配置

    location ~ ^/subdomain-category/(.*)$ {
        return 302 https://subdomain2.domain.com/$1;
    }

    # 共享目录的root等基础配置
}

# 处理subdomain2的URL masking逻辑
server {
    listen 443 ssl;
    server_name subdomain2.domain.com;
    # 此处补充SSL证书等配置

    # 匹配非subdomain-category开头的路径,内部重写
    location ~ ^/(?!subdomain-category/)(.*)$ {
        rewrite ^/(.*)$ /subdomain-category/$1 last;
    }

    # 共享目录的root等基础配置
}

注意事项

  • Apache需确保已开启mod_rewrite模块
  • 测试阶段用302临时跳转,逻辑验证正确后可改为301永久跳转(若需搜索引擎收录)

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.03 00:05:19