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

如何将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的虚拟路径映射

  1. 登录Azure门户,进入原App Service A的配置 -> 路径映射
  2. 删除/blog对应的虚拟应用程序映射,避免后续路由冲突

方案一:通过原App Service A配置反向代理(无需新增服务)

1.1 启用ARR代理

在原App Service A的配置 -> 常规设置中,将ARR代理设置为开启

1.2 添加URL Rewrite规则

  1. 打开原App Service A的Kudu控制台(访问https://<你的原AppService名称>.scm.azurewebsites.net)
  2. 进入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实例并配置后端池

  1. 创建Azure Front Door实例,添加两个后端池:
    • 后端池1:指向原App Service A
    • 后端池2:指向新App Service B
  2. 为两个后端池配置健康检查,确保服务可用性

2.2 创建路由规则

  1. 添加高优先级规则(优先级设为1):
    • 匹配路径:/blog/* 和 /blog
    • 路由到新App Service B的后端池
  2. 添加低优先级规则(优先级设为2):
    • 匹配路径:/*
    • 路由到原App Service A的后端池

2.3 更新DNS记录

将mydomain.com的DNS记录指向Front Door的前端域名


步骤2:配置新App Service B的WordPress

  1. 登录新WordPress后台,进入设置 -> 常规:
    • 将「WordPress地址(URL)」和「站点地址(URL)」设置为https://mydomain.com/blog
  2. 进入设置 -> 固定链接,保持与原博客一致的链接结构(如「文章名称」模式)
  3. 迁移原博客数据库:导出原WordPress数据库,导入新App Service B对应的数据库(如Azure Database for MySQL),并更新wp-config.php中的数据库连接信息
  4. 迁移媒体文件:将原博客wp-content/uploads目录下的文件复制到新App Service B的对应目录

验证步骤

  1. 访问mydomain.com,确认主站正常加载(来自原App Service A)
  2. 访问mydomain.com/blog,确认博客正常加载(来自新App Service B)且URL保持不变
  3. 测试博客内的文章链接、媒体文件,确保跳转和访问正常

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.17 06:20:20