IIS网址重写规则以隐藏所有内容

问题描述

在IIS中,我有一个带有DNS条目的特定站点,该条目是我拥有的另一个站点的子域。为了方便起见,我被要求隐藏所有URL路径。我不确定它会对服务器端的查询字符串产生什么影响。

无论如何,对于该站点,我只有1个名为home的应用程序,它是asp.net站点本身。第一个问题是用户需要输入www.sub.mysite.com/home/才能访问它,但我们只想使用www.sub.mysite.com。所以我想出了以下规则,该规则只是将请求跳转到该文件夹​​

<?xml version="1.0" encoding="UTF-8"?>
<configuration>
    <system.webServer>
        <directoryBrowse enabled="false" />
        <rewrite>
            <outboundRules>
                <rule name="Whatever" preCondition="HTMLCode" stopProcessing="true">
                    <match filterByTags="A,Img,Link,Script" pattern="^/home/(.*)$" />
                    <action type="Rewrite" value="/{R:1}" />
                </rule>
                <preConditions>
                    <preCondition name="HTMLCode">
                        <add input="{RESPONSE_CONTENT_TYPE}" pattern="^text/html" />
                    </preCondition>
                </preConditions>
            </outboundRules>
            <rules>
                <rule name="Incoming" stopProcessing="true">
                    <match url="^(.*)$" />
                    <action type="Rewrite" url="home/{R:1}" appendQueryString="true" />
                </rule>
            </rules>
        </rewrite>
    </system.webServer>
</configuration>

这条规则一开始似乎很奏效,但是我们很快注意到有些问题与要求不符。如果我去联系页面(一个例子),这就是问题所在:

我本来拥有的东西:www.sub.mydomain.com/home/en/contact.aspx

我的规则是:www.sub.mydomain.com/en/contact.aspx

他们想要的是:www.sub.mydomain.com

我认为,即使有可能,我的整个规则也需要更改。我的猜测是{R:1}在出站规则中强制将参数粘贴回用户。

请注意,我对重写规则一无所知。如果出于安全考虑,本网站不使用安全性。

解决方法

如果要从url隐藏路径,可以尝试以下规则:

    <rewrite>
      <rules>  
         <rule name="RemoveCarrotFromPath" enabled="true" stopProcessing="true">
            <match url=".*" />
            <action type="Redirect" url="http://www.sub.mydomain.com" />
          </rule>
        </rules>
    </rewrite>

enter image description here

相关问答

依赖报错 idea导入项目后依赖报错,解决方案:https://blog....
错误1:代码生成器依赖和mybatis依赖冲突 启动项目时报错如下...
错误1:gradle项目控制台输出为乱码 # 解决方案:https://bl...
错误还原:在查询的过程中,传入的workType为0时,该条件不起...
报错如下,gcc版本太低 ^ server.c:5346:31: 错误:‘struct...