重定向根 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的主要内容,如果未能解决你的问题,请参考以下文章