重定向根 URL - IIS 7

Posted

技术标签:

【中文标题】重定向根 URL - IIS 7【英文标题】:Redirect root URL - IIS 7 【发布时间】:2012-12-21 19:00:00 【问题描述】:

我的网站上安装了一些论坛http://ironnoob.com/forums。

我的网站位于 c:\IronNoob,我的论坛安装在 c:\IronNoob\forums

我希望“ironnoob.com”和“www.ironnoob.com”都进行服务器端重定向到“ironnoob.com\forums”。

我使用的是 IIS 7,而且我是设置这些东西的新手,所以我什至不知道该谷歌搜索什么。我知道我可以使用 html 进行客户端重定向,但我知道服务器端重定向更好。我已经知道如何为 IIS 安装 HttpRedirect 模块,但是如果我在网站的根文件夹中设置重定向到我的论坛文件夹,访问 ironnoob.com 时会出现循环重定向错误。

HTTP 重定向设置:

    在 ISS 的“连接”窗格中选择了根目录 选中“将请求重定向到此目的地” 目的地=http://somesite.com/forums 勾选“将所有请求重定向到确切位置” 勾选“仅将请求重定向到此目录(而非子目录)中的内容” 状态代码:永久 (301)

为什么我告诉它不要重定向子目录?这样做的正确方法是什么?

【问题讨论】:

我猜你应该谷歌 301 重定向 IIS。这是 IIS 6,但与 IIS 7 的工作方式相同:***.com/a/888356/1443490 我最害怕的是设置循环引用 - if somesite.com -> somesite.com/forums -> somesite.com/forums/forums -> etc 您的 IIS 目前是如何设置的? 好吧,我对程序的心智模型是错误的。没有一堆全局重定向,站点资源管理器窗格中的每个节点都有一个。得到它的工作。谢谢。 其实我又错了。我得到了一百万个嵌套重定向。为什么这在 IIS 中这么难。 【参考方案1】:

您可以使用URL rewrite 模块,而不是使用HTTP redirect 模块。

运行inetmgr 命令并选择您的网站根目录。打开URL rewrite配置:

点击右侧面板上的Add a rule。在入站规则中选择一个Blank rule

您必须在此处命名您的规则并选择Does not match the pattern 选项。然后您必须设置Pattern(在这种情况下,这意味着不以forums开头的URL将触发此规则):

最后一步是设置重定向。您可能希望使用 advised by Google 的 301 重定向:

点击右侧面板上的Apply,您应该可以开始了。

注意:如果您的Redirect URL 与您的Pattern 不匹配,您将陷入无限循环(您可以通过简单地单击Test 按钮来测试它会写入您的@ 987654341@).

此模块的文档可用here

【讨论】:

酷 - 行得通。似乎在根上正则表达式完全匹配可能会稍微面向未来,因此如果我将来添加第二个根级文件夹,我可以导航到它。是否可以在不导致循环重写的情况下进行设置? 如果您想添加第二个根级文件夹,只需将其规则放在首位。规则按照它们的显示顺序进行处理 (iis.net/learn/extensions/url-rewrite-module/…)。如果您认为这可能有用,我可以编辑答案!

以上是关于重定向根 URL - IIS 7的主要内容,如果未能解决你的问题,请参考以下文章

站点核心 301 重定向 iis 7

IIS 7 上的条件 https 重定向

使用iis 7重写/重定向去除前导零的数字并转发

减少链接 URL 重定向 [IIS/Regex/ReWrite]

IIS 301 从子文件夹重定向到根文件夹

我可以使用根 web.config 对某些目录进行全局重定向吗?