[英]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.