URL 重写到子域

URL Rewrite to a subdomain

我正在使用 ASP.NET 的重写工具从 http 重定向到 hpps。我想改道

https://services.net/ExitInterview/home/about

但目前正在路由到

https://services.net/home/about

下面是我的重定向规则:

    <rule name="HTTP to HTTPS redirect" stopProcessing="true">
      <match url="(.*)" />
      <conditions>
        <add input="{HTTPS}" pattern="off" ignoreCase="true" />
      </conditions>
      <action type="Redirect" url="https://{HTTP_HOST}/{R:1}"
          redirectType="Permanent" />
    </rule>`

我可以在规则字符串中混合 "HTTP_HOST" 文本和硬编码文本吗?或者有别的办法吗?

我不想对 url 进行硬编码,因为它会随着本地、暂存和生产而变化。

从 web.config 文件中的 HTTP 重定向到 HTTPS 方面,这应该可以满足您的要求:

<?xml version="1.0" encoding="UTF-8"?>
<configuration>
<system.web>
    <httpRuntime executionTimeout="180" />
</system.web>
<system.webServer>
    <httpErrors errorMode="Detailed" existingResponse="PassThrough" />
    <rewrite>
    <rules>
        <rule name="HTTP to HTTPS redirect" stopProcessing="true">
            <match url="(.*)" />
            <conditions>
                <add input="{HTTPS}" pattern="off" />
            </conditions>
            <action type="Redirect" url="https://{HTTP_HOST}/{R:1}" redirectType="Permanent" />
        </rule>
    </rules>
    </rewrite>
</system.webServer>
</configuration>

我将这个确切的片段用于强制执行 HTTPS 重定向的网络服务器,但这似乎也与您所拥有的非常接近。您确定已正确配置 web.config 文件的结构吗? - 我记得 运行 进入问题时我会遗漏一些东西。

<rule name="HTTP to HTTPS redirect" ="true">
  <match url="(.*)" />
  <conditions>
    <add input="{HTTPS}" pattern="off" ignoreCase="true" />
  </conditions>
  <action type="Redirect" url="https://{HTTP_HOST}/ExitInterview/{R:1}"
      redirectType="Permanent" />
</rule>

试试这个