如何将子域名重定向至其他域名应用并保留伪静态美观链接
问题解答
可行性结论
该需求完全可以实现,核心采用反向代理技术方案,无需将应用代码迁移到yasam.thingrate.com对应的服务空间,即可保留原有美观路由的访问格式。
具体操作步骤
1. DNS解析配置
首先将子域名yasam.thingrate.com的DNS记录解析到你用于部署反向代理服务的服务器公网IP。
2. 反向代理规则配置(二选一即可)
根据yasam.thingrate.com对应的服务环境选择对应配置方案:
方案A:IIS环境(和原应用部署环境一致)
如果yasam.thingrate.com对应的服务空间为IIS,直接在站点根目录新建web.config文件,写入如下反向代理规则:
<?xml version="1.0" encoding="UTF-8"?> <configuration> <system.webServer> <rewrite> <rules> <rule name="ProxyToMgModulgram" stopProcessing="true"> <match url="(.*)" /> <action type="Rewrite" url="https://mg.modulgram.com/{R:1}" /> <serverVariables> <set name="HTTP_X_FORWARDED_HOST" value="{HTTP_HOST}" /> </serverVariables> </rule> </rules> </rewrite> </system.webServer> </configuration>
注意事项:
- 需提前在IIS服务器安装
URL Rewrite模块和Application Request Routing(ARR)模块,开启反向代理功能,否则规则不会生效 - 若原应用有域名校验逻辑,需在mg.modulgram.com的配置中添加
yasam.thingrate.com到信任域名列表。
方案B:Nginx环境
如果yasam.thingrate.com对应的服务空间为Nginx,在站点配置文件中添加如下规则:
server { listen 80; listen 443 ssl; server_name yasam.thingrate.com; # SSL证书配置请自行替换为实际路径 ssl_certificate /path/to/yasam.thingrate.com.crt; ssl_certificate_key /path/to/yasam.thingrate.com.key; location / { proxy_pass https://mg.modulgram.com; proxy_set_header Host $host; proxy_set_header X-Real-IP $remote_addr; proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for; proxy_set_header X-Forwarded-Proto $scheme; } }
配置完成后重载Nginx服务即可生效。
3. 原应用兼容调整(按需选择)
- 如果原应用内部存在硬编码的
mg.modulgram.com域名跳转逻辑,建议调整为相对路径跳转,或根据请求的Host头动态生成域名,避免访问时跳转到原域名 - 如果静态资源存在跨域加载报错,在mg.modulgram.com的响应头中添加
Access-Control-Allow-Origin: https://yasam.thingrate.com即可解决。
内容的提问来源于stack exchange,提问作者Lovestoned
相关产品推荐
相关产品推荐

