URL重写到子域
Posted
技术标签:
【中文标题】URL重写到子域【英文标题】:URL Rewrite to a subdomain 【发布时间】:2018-10-22 03:54:40 【问题描述】:我正在使用 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 进行硬编码,因为它会随着本地、暂存和生产而变化。
【问题讨论】:
【参考方案1】:<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>
试试这个
【讨论】:
这很容易。添加ExitInterview,我以为我很早就尝试过,但没有奏效。现在它确实有效。也许我上次没有刷新缓存。我刷新了缓存,这有效。谢谢!【参考方案2】:这应该可以满足您在 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>
我将这个精确的 sn-p 用于强制 HTTPS 重定向的网络服务器,但这似乎也与您所拥有的非常接近。你确定你已经正确配置了 web.config 文件的结构吗? - 我记得当我遗漏一些东西时遇到了问题。
【讨论】:
我不确定您所说的“web.config 文件的结构”是什么意思。 HTTP_HOST 值从何而来?也许它需要正确设置? 在 Windows Web 服务器上,(如果重写规则是在站点级别定义的)那么您需要将此信息放在 web.config 文件中(就像我在上面编辑的那样),并将其放置在您的根目录中。 HTTP_HOST 是一个服务器变量,本质上是主机域:docs.microsoft.com/en-us/iis/extensions/url-rewrite-module/… 是的,我正在使用 web.config 文件。重定向正在重定向到主机。问题是我需要它重定向到主机的子域“ExitInterview”。 尝试将 R:1 更改为 R:0(这可能是您的问题):***.com/questions/16998832/…以上是关于URL重写到子域的主要内容,如果未能解决你的问题,请参考以下文章
如何在 asp.net 中将 URL 重写为子域而不实际在服务器上创建子域
Apache 重写:如何避免在省略 url 结尾斜杠时显示 url 参数?