如何将Azure中mydomain.com/blog路径指向新的App Service?
WordPress博客迁移至Azure新App Service并保留/blog路径配置方案
前置准备
- 已创建托管新WordPress的Azure App Service(下称新App Service B)
- 原主站所在Azure App Service(下称原App Service A)的虚拟路径配置已存在
/blog -> site\blog映射
步骤1:清理原App Service A的虚拟路径映射
- 登录Azure门户,进入原App Service A的配置 -> 路径映射
- 删除
/blog对应的虚拟应用程序映射,避免后续路由冲突
方案一:通过原App Service A配置反向代理(无需新增服务)
1.1 启用ARR代理
在原App Service A的配置 -> 常规设置中,将ARR代理设置为开启
1.2 添加URL Rewrite规则
- 打开原App Service A的Kudu控制台(访问
https://<你的原AppService名称>.scm.azurewebsites.net) - 进入
site/wwwroot目录,编辑(或创建)web.config文件,添加以下规则:
<configuration> <system.webServer> <rewrite> <rules> <!-- 处理/blog下的所有子路径请求 --> <rule name="BlogSubPathProxy" stopProcessing="true"> <match url="^blog/(.*)" /> <action type="Rewrite" url="https://<你的新AppService名称>.azurewebsites.net/blog/{R:1}" /> <serverVariables> <set name="HTTP_X_ORIGINAL_ACCEPT_ENCODING" value="{HTTP_ACCEPT_ENCODING}" /> <set name="HTTP_ACCEPT_ENCODING" value="" /> </serverVariables> </rule> <!-- 处理根/blog路径请求(如mydomain.com/blog) --> <rule name="BlogRootProxy" stopProcessing="true"> <match url="^blog$" /> <action type="Rewrite" url="https://<你的新AppService名称>.azurewebsites.net/blog/" /> </rule> </rules> <!-- 恢复编码格式,避免压缩内容乱码 --> <outboundRules> <rule name="RestoreAcceptEncoding" preCondition="NeedsRestoringAcceptEncoding"> <match serverVariable="HTTP_ACCEPT_ENCODING" pattern="^(.*)" /> <action type="Rewrite" value="{HTTP_X_ORIGINAL_ACCEPT_ENCODING}" /> </rule> <preConditions> <preCondition name="NeedsRestoringAcceptEncoding"> <add input="{HTTP_X_ORIGINAL_ACCEPT_ENCODING}" pattern=".+" /> </preCondition> </preConditions> </outboundRules> </rewrite> </system.webServer> </configuration>
替换代码中的
<你的新AppService名称>为实际的新App Service B名称
方案二:通过Azure Front Door实现路由(适用于需CDN/全局路由场景)
2.1 创建Front Door实例并配置后端池
- 创建Azure Front Door实例,添加两个后端池:
- 后端池1:指向原App Service A
- 后端池2:指向新App Service B
- 为两个后端池配置健康检查,确保服务可用性
2.2 创建路由规则
- 添加高优先级规则(优先级设为1):
- 匹配路径:
/blog/*和/blog - 路由到新App Service B的后端池
- 匹配路径:
- 添加低优先级规则(优先级设为2):
- 匹配路径:
/* - 路由到原App Service A的后端池
- 匹配路径:
2.3 更新DNS记录
将mydomain.com的DNS记录指向Front Door的前端域名
步骤2:配置新App Service B的WordPress
- 登录新WordPress后台,进入设置 -> 常规:
- 将「WordPress地址(URL)」和「站点地址(URL)」设置为
https://mydomain.com/blog
- 将「WordPress地址(URL)」和「站点地址(URL)」设置为
- 进入设置 -> 固定链接,保持与原博客一致的链接结构(如「文章名称」模式)
- 迁移原博客数据库:导出原WordPress数据库,导入新App Service B对应的数据库(如Azure Database for MySQL),并更新
wp-config.php中的数据库连接信息 - 迁移媒体文件:将原博客
wp-content/uploads目录下的文件复制到新App Service B的对应目录
验证步骤
- 访问
mydomain.com,确认主站正常加载(来自原App Service A) - 访问
mydomain.com/blog,确认博客正常加载(来自新App Service B)且URL保持不变 - 测试博客内的文章链接、媒体文件,确保跳转和访问正常
内容的提问来源于stack exchange,提问作者tekrum
相关产品推荐
相关产品推荐

