URL 在 asp.net 中使用 IIS 无法重写主机头
URL Rewrite for Host Header is not working using IIS in asp.net
我不想重定向任何恶意 link 或用户重定向到其他域。相反,它应该重定向到我提到的域。因此,为此,我在下面写了 Rewrite URL rule by using IIS server
<rewrite>
<rules>
<clear />
<rule name="Redirect to https" stopProcessing="true">
<match url=".*" />
<conditions>
<add input="{HTTPS}" pattern="off" />
<add input="{HTTP_HOST}" matchType="Pattern" pattern="^([a-zA-Z0-9-_]+.)https://nvmbd1bkh150v02.rjil.ril.com$" ignoreCase="true" negate="true" />
</conditions>
<action type="Redirect" url="https://nvmbd1bkh150v02.rjil.ril.com/FiberInventoryPortal" redirectType="Permanent" appendQueryString="false" />
</rule>
</rules>
</rewrite>
但是这里发生的是,我的所有应用程序 CSS 都受到了干扰。请建议我在这种情况下应该怎么做。
根据您的 url 重写代码,我发现您会将所有请求重定向到 https://nvmbd1bkh150v02.rjil.ril.com/FiberInventoryPortal
包含 CSS 文件。这就是您的 CSS 文件无法正常工作的原因。
如果您的 css 文件也在新站点的 FiberInventoryPortal 文件夹中。我建议您可以尝试以下 url 重写规则。
<rewrite>
<rules>
<clear />
<rule name="Redirect to https" stopProcessing="true">
<match url=".*" />
<conditions>
<add input="{HTTPS}" pattern="off" />
<add input="{HTTP_HOST}" matchType="Pattern" pattern="^([a-zA-Z0-9-_]+.)https://nvmbd1bkh150v02.rjil.ril.com$" ignoreCase="true" negate="true" />
</conditions>
<action type="Redirect" url="https://nvmbd1bkh150v02.rjil.ril.com/FiberInventoryPortal/{R:0}" redirectType="Permanent" appendQueryString="false" />
</rule>
</rules>
</rewrite>
不确定 "malicious" 链接是什么意思,但我的猜测是您希望访问者只使用特定的主机名。而且每个 URL 应该总是以 /FiberInventoryPortal/
.
开头
所以这可能就是您想要的:
<rewrite>
<rules>
<clear />
<rule name="Force HTTPS" stopProcessing="true">
<match url="(.*)" />
<conditions logicalGrouping="MatchAll">
<add input="{HTTPS}" negate="true" pattern="^ON$" />
<add input="{HTTP_HOST}" negate="true" pattern="^nvmbd1bkh150v02\.rjil\.ril\.com$" />
</conditions>
<action type="Redirect" url="https://nvmbd1bkh150v02.rjil.ril.com{REQUEST_URI}" redirectType="Permanent" appendQueryString="false" />
</rule>
<rule name="Redirect to FiberInventoryPortal" stopProcessing="true">
<match url=".*" />
<conditions>
<add input="{REQUEST_URI}" matchType="Pattern" pattern="^/FiberInventoryPortal/" ignoreCase="true" negate="true" />
</conditions>
<action type="Redirect" url="https://nvmbd1bkh150v02.rjil.ril.com/FiberInventoryPortal/{R:0}" redirectType="Permanent" appendQueryString="false" />
</rule>
</rules>
</rewrite>
我不想重定向任何恶意 link 或用户重定向到其他域。相反,它应该重定向到我提到的域。因此,为此,我在下面写了 Rewrite URL rule by using IIS server
<rewrite>
<rules>
<clear />
<rule name="Redirect to https" stopProcessing="true">
<match url=".*" />
<conditions>
<add input="{HTTPS}" pattern="off" />
<add input="{HTTP_HOST}" matchType="Pattern" pattern="^([a-zA-Z0-9-_]+.)https://nvmbd1bkh150v02.rjil.ril.com$" ignoreCase="true" negate="true" />
</conditions>
<action type="Redirect" url="https://nvmbd1bkh150v02.rjil.ril.com/FiberInventoryPortal" redirectType="Permanent" appendQueryString="false" />
</rule>
</rules>
</rewrite>
但是这里发生的是,我的所有应用程序 CSS 都受到了干扰。请建议我在这种情况下应该怎么做。
根据您的 url 重写代码,我发现您会将所有请求重定向到 https://nvmbd1bkh150v02.rjil.ril.com/FiberInventoryPortal
包含 CSS 文件。这就是您的 CSS 文件无法正常工作的原因。
如果您的 css 文件也在新站点的 FiberInventoryPortal 文件夹中。我建议您可以尝试以下 url 重写规则。
<rewrite>
<rules>
<clear />
<rule name="Redirect to https" stopProcessing="true">
<match url=".*" />
<conditions>
<add input="{HTTPS}" pattern="off" />
<add input="{HTTP_HOST}" matchType="Pattern" pattern="^([a-zA-Z0-9-_]+.)https://nvmbd1bkh150v02.rjil.ril.com$" ignoreCase="true" negate="true" />
</conditions>
<action type="Redirect" url="https://nvmbd1bkh150v02.rjil.ril.com/FiberInventoryPortal/{R:0}" redirectType="Permanent" appendQueryString="false" />
</rule>
</rules>
</rewrite>
不确定 "malicious" 链接是什么意思,但我的猜测是您希望访问者只使用特定的主机名。而且每个 URL 应该总是以 /FiberInventoryPortal/
.
所以这可能就是您想要的:
<rewrite>
<rules>
<clear />
<rule name="Force HTTPS" stopProcessing="true">
<match url="(.*)" />
<conditions logicalGrouping="MatchAll">
<add input="{HTTPS}" negate="true" pattern="^ON$" />
<add input="{HTTP_HOST}" negate="true" pattern="^nvmbd1bkh150v02\.rjil\.ril\.com$" />
</conditions>
<action type="Redirect" url="https://nvmbd1bkh150v02.rjil.ril.com{REQUEST_URI}" redirectType="Permanent" appendQueryString="false" />
</rule>
<rule name="Redirect to FiberInventoryPortal" stopProcessing="true">
<match url=".*" />
<conditions>
<add input="{REQUEST_URI}" matchType="Pattern" pattern="^/FiberInventoryPortal/" ignoreCase="true" negate="true" />
</conditions>
<action type="Redirect" url="https://nvmbd1bkh150v02.rjil.ril.com/FiberInventoryPortal/{R:0}" redirectType="Permanent" appendQueryString="false" />
</rule>
</rules>
</rewrite>