簡體   English   中英

在IIS7中重寫映射 - 不重定向

[英]Rewrite Maps in IIS7 - Not redirecting

我正在嘗試使用名為“rewritemaps.config”的單獨配置文件,其中包含我要重定向的URL。 該文件位於根目錄(與web.config相同的位置)。 我擁有的Redirects.config文件的格式是:

<rewriteMaps>
    <rewriteMap name="Redirects">
        <add key="aspx/drvmain.aspx"
             value="http://www.newdomain.com/folder2/page2.aspx" />
        <add key="aspx/jobs_AboutUs.aspx"
             value="http://www.newdomain.com/folder1/jobs.aspx" />
        <add key="aspx/page.aspx"
             value="http://www.newdomain.com/folder1/page2.aspx" />
    </rewriteMap>
</rewriteMaps>

在我的web.config文件中,我有:

<system.webServer>
    <rewrite>
        <rewriteMaps configSource="rewritemaps.config" />
            <rules>
                <rule name="Redirect rules">
                    <match url=".*" />
                    <conditions>
                        <add input="{Redirects:{REQUEST_URI}}" pattern="(.+)" />
                    </conditions>
                    <action type="Redirect" redirectType="Permanent"
                            url="{C:1}" appendQueryString="false" />
                </rule>
            </rules>
        </rewriteMaps>
    </rewrite>
</system.webServer>

在IIS管理器中(是的,我已經安裝了URL Rewrite模塊),我甚至已經去了redirects.config文件中對我的一個URL測試規則和條件,它說它有效。 但是當我嘗試在瀏覽器中訪問URL時,它不會像我指定的那樣重定向。 在rewritemaps.config文件中,我嘗試了完整的域名,我在aspx之前嘗試過“/”。 似乎沒什么用。 我不確定我在這里缺少什么。

好吧,我讓它工作。 有點蠢。 在rewritemaps.config文件中,我需要在密鑰URL之前使用“/”。 我知道我以前曾嘗試過,但我當時一定在其他地方遺漏了一些東西。 那好吧。 它現在有效。

很難確定為什么會失敗,但您可以做的最好的事情是使用失敗的請求跟蹤,以便IIS告訴您發生了什么。 使用FREB,您將獲得詳細的跟蹤,告訴您哪些規則已經過評估,以及它們是否匹配,或者它們沒有,為什么不。 您還可以看到要匹配的“正確”模式以及評估的每個條件。

請參閱以下鏈接: http//www.iis.net/learn/extensions/url-rewrite-module/using-failed-request-tracing-to-trace-rewrite-rules

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM