在 IIS 上创建重写规则以重定向到同一服务器上的子目录
Create rewrite rule on IIS to redirect to subdirectory on same server
我的网站结构是这样的:
https://example.org/
october-2018/
index.html
css/...
js/...
november-2019/
index.html
css/...
js/...
march-2020/
index.html
css/...
js/...
...
我想创建一个 IIS 重写规则,该规则将重写对裸域 URL (https://example.org/) 的请求以提供 november-2019/
的内容目录。我找不到任何示例,而且我对 IIS 的了解还不足以解决这个问题(如果是 Apache 或 nginx 对我来说就容易多了……)。
以防万一:由于我在公司环境中,我认为应用程序请求路由 (ARR) 扩展在我必须使用的平台上不可用。
您可以使用以下 url 重写规则:
<rule name="ReverseProxyInboundRule5" stopProcessing="true">
<match url="^$" />
<conditions logicalGrouping="MatchAll" trackAllCaptures="false" />
<action type="Rewrite" url="http://www.sample1.com/november-2019/" logRewrittenUrl="true" />
</rule>
<outboundRules>
<rule name="rule5" preCondition="ResponseIsHtml1" stopProcessing="true">
<match filterByTags="Link, Script" pattern="(.*)" />
<conditions>
<add input="{HTTPS}" pattern="on" />
<add input="{HTTP_HOST}" pattern="www.sample1.com" />
</conditions>
<action type="Rewrite" value="/november-2019{R:1}" />
</rule>
<preConditions>
<preCondition name="ResponseIsHtml1" logicalGrouping="MatchAny">
<add input="{RESPONSE_CONTENT_TYPE}" pattern="text/html" />
</preCondition>
</outboundRules>
最后,经过反复试验,我创建了以下规则:
<rule name="Redirect to specific local subdirectory" enabled="true" patternSyntax="ECMAScript" stopProcessing="true">
<match url="^$" />
<conditions logicalGrouping="MatchAll" trackAllCaptures="false" />
<action type="Rewrite" url="november-2019/" />
</rule>
这对父目录的作用与对子目录的作用相同。但是,所有资源(字体、图像、css 等)都需要使用绝对 URL 到 november-2019/
目录。
不幸的是,我无法使用@Jalpha 的规则,因为我不确定如何使用它们。不过,我很感激你的努力。
我的网站结构是这样的:
https://example.org/
october-2018/
index.html
css/...
js/...
november-2019/
index.html
css/...
js/...
march-2020/
index.html
css/...
js/...
...
我想创建一个 IIS 重写规则,该规则将重写对裸域 URL (https://example.org/) 的请求以提供 november-2019/
的内容目录。我找不到任何示例,而且我对 IIS 的了解还不足以解决这个问题(如果是 Apache 或 nginx 对我来说就容易多了……)。
以防万一:由于我在公司环境中,我认为应用程序请求路由 (ARR) 扩展在我必须使用的平台上不可用。
您可以使用以下 url 重写规则:
<rule name="ReverseProxyInboundRule5" stopProcessing="true">
<match url="^$" />
<conditions logicalGrouping="MatchAll" trackAllCaptures="false" />
<action type="Rewrite" url="http://www.sample1.com/november-2019/" logRewrittenUrl="true" />
</rule>
<outboundRules>
<rule name="rule5" preCondition="ResponseIsHtml1" stopProcessing="true">
<match filterByTags="Link, Script" pattern="(.*)" />
<conditions>
<add input="{HTTPS}" pattern="on" />
<add input="{HTTP_HOST}" pattern="www.sample1.com" />
</conditions>
<action type="Rewrite" value="/november-2019{R:1}" />
</rule>
<preConditions>
<preCondition name="ResponseIsHtml1" logicalGrouping="MatchAny">
<add input="{RESPONSE_CONTENT_TYPE}" pattern="text/html" />
</preCondition>
</outboundRules>
最后,经过反复试验,我创建了以下规则:
<rule name="Redirect to specific local subdirectory" enabled="true" patternSyntax="ECMAScript" stopProcessing="true">
<match url="^$" />
<conditions logicalGrouping="MatchAll" trackAllCaptures="false" />
<action type="Rewrite" url="november-2019/" />
</rule>
这对父目录的作用与对子目录的作用相同。但是,所有资源(字体、图像、css 等)都需要使用绝对 URL 到 november-2019/
目录。
不幸的是,我无法使用@Jalpha 的规则,因为我不确定如何使用它们。不过,我很感激你的努力。