【发布时间】:2020-07-03 22:01:52
【问题描述】:
我的 URL 重写有问题,我不知道我做错了什么,也许你可以指出我正确的方向。我们有一个 Intranet 站点,其模式如下:intranet.old-site.com。现在我们有了一个新域,我想将我过时的链接转发到我们新 Intranet 的首页,如下所示:intranet.new-site.com。
我在 IIS 中安装了 URL Rewrite 模块,在我看来,设置是正确的:
匹配网址
Request URL: matches pattern.
Using: Wildcards
Pattern: *intranet.old-site*
Ignore case: true
条件
none
服务器变量
none
动作
Action Type: Rewrite
Action Properties: Rewrite-URL: http://intranet.new-site.com/
Append query string: true
Log rewritten URL: false
Stop processing of subsequent rules: false
我也愿意接受任何可能的想法,所以如果web.config 有规则,我也可以尝试。
更新 1:
网络配置现在看起来像这样:
<rewrite>
<rules>
<rule name="RewriteSG2DE" patternSyntax="ECMAScript" stopProcessing="true">
<match url="(.*).sgbdd.saint-gobain(.*)" />
<action type="Redirect" url="intranet.stark-deutschland.net" />
<conditions logicalGrouping="MatchAny">
<add input="{HTTP_HOST}" pattern="(.*)sgbdd.saint-gobain(.*)" />
<add input="{HTTP_HOST}" pattern="intranet.sgbdd.saint-gobain.com" />
</conditions>
</rule>
</rules>
</rewrite>
我希望将任何网站(基本上类似于 intranet.sgbdd.saint-gobain.com/start.asp?something_more" 的任何网站转发/重定向到 intranet.stark-deutschland.net/start.asp?something_more
例如:
intranet.sgbdd.saint-gobain.com/start.asp?something_more --> intranet.stark-deutschland.net/start.asp?something_more
somesite.intranet.saint-gobain.com/my/new/site --> somesite.intranet.stark-deutschland.net/my/new/site
我还按照建议添加了条件:
感谢您的意见
【问题讨论】:
-
当文件版本为6.2时,你使用的是IIS 8,support.microsoft.com/en-ie/help/224609/…你直接打错了1blog.lextudio.com/…
-
@LexLi 好文章。我经历了它,但我似乎无法在这里找到我的错误。我认为它与模式有关,但即使我将其更改为
intranet.old-site.com(没有通配符/正则表达式)它也不起作用。 -
您没有使用条件来检查主机名。这是最典型的错误。
-
所以我也添加了两个条件,但仍然没有运气:第一个是输入:
{HTTP_HOST}匹配模式(.*)intranet.old-site(.*),第二个完全相同,但具有完整的地址。还将“逻辑分组”更改为Match any -
请记住,其他人无法看到您的屏幕,因此请编辑您的问题以包含全部而不是部分的新信息。还要学习如何自行排除故障,docs.microsoft.com/en-us/iis/extensions/url-rewrite-module/… 那么原因应该很清楚。
标签: iis web-config iis-8