咨询热线:4006-75-4006
售前:9:00-23:30 备案:9:00-18:00 技术:7*24h
在 SEO(搜索引擎优化)和品牌规范中,通常希望统一网站的访问入口。最常见的做法是将不带 www 的顶级域名(如 example.com)自动 301 重定向到带 www 的子域名(如 www.landui.com)。
本教程将介绍如何在 IIS 中使用 URL Rewrite 模块 实现这一功能。
确保你的服务器已安装 URL Rewrite Module 2.0 或更高版本。
如果未安装,请访问微软官网下载:URL Rewrite Module
安装后无需重启服务器,但可能需要重启 IIS 管理器。
这是最直观的方法,适合不熟悉 XML 配置的用户。
按 Win + R,输入 inetmgr,回车。
在左侧连接面板中,展开服务器节点,点击你要配置的具体网站(例如 Default Web Site 或你的业务站点)。
注意:不要在服务器根节点配置,要在具体的 Site 节点配置。
在中间的功能视图中,找到并双击 URL Rewrite 图标。
在右侧的 Actions (操作) 面板中,点击 Add Rule(s)...。
在弹出的窗口中,选择 Inbound Rules (入站规则) 下的 Blank rule (空白规则)。
点击 OK。
在右侧的规则编辑界面,按以下参数填写:
Name (名称): 输入 Redirect to WWW (方便识别即可)。
Match URL (匹配 URL):
Requested URL: Matches Pattern
Using: Regular Expressions (正则表达式)
Pattern: (.*) (匹配所有路径)
Conditions (条件):
点击 Add... 按钮。
Condition input: {HTTP_HOST}
Check if input string: Matches the Pattern
Pattern: ^www\\.
关键步骤:勾选右侧的 Negate (取反)。
解释:这意味着“如果主机头 不 以 www. 开头,则执行此规则”。
点击 OK。
Action (操作):
注意:如果你的网站没有启用 HTTPS,请将 https 改为 http。
{R:1} 代表保留用户原本访问的路径(例如 /about 会被保留)。
Action type: Redirect
Redirect URL: {HTTP_HOST}/{R:1}
Append query string: 勾选 (保留问号后面的参数)。
Redirect type: Permanent (301) (有利于 SEO)。
点击右侧 Apply (应用) 按钮。
配置完成。
如果你习惯直接编辑配置文件,或者需要批量部署,可以直接在网站根目录下的 web.config 文件中添加规则。
使用记事本或 VS Code 打开网站根目录的 web.config。
找到 节点。
在 节点内添加以下 配置:
xml12345678910111213141516171819
保存文件。IIS 会自动检测并应用更改,无需重启。
配置项 | 值 | 解释 |
|---|---|---|
Pattern |
| 匹配用户访问的任何页面路径(如 |
{HTTP_HOST} | - | 获取当前请求的域名(如 |
Negate (取反) |
| 最重要的一点。只有当域名 不是 |
{R:1} | - | 将匹配到的路径部分(括号内的内容)拼接到新 URL 后面,确保 |
301 Permanent | - | 告诉搜索引擎这是永久迁移,有利于权重传递。 |
如果你的网站同时支持 HTTP 和 HTTPS,上述配置中的 https:// 可能会强制将所有 HTTP 请求也跳转到 HTTPS。
如果你希望强制全站 HTTPS + WWW:
保持上述配置中的 https:// 不变。这是目前最推荐的安全做法。
如果你希望保持原协议(HTTP 跳 HTTP,HTTPS 跳 HTTPS):
你需要使用服务器变量来判断协议。将 Redirect URL 修改为:http{C:1}://www.{HTTP_HOST}/{R:1}并添加一个条件来捕获 HTTPS 状态:
xml1234
(注:为了简单起见,现代网站通常建议直接强制 301 到 HTTPS,因此教程中默认使用了 https://)
配置完成后,请进行以下测试:
浏览器测试:
在地址栏输入 http://你的域名.com (不带 www)。
按回车,观察地址栏是否自动变为 你的域名.com。
尝试访问 http://你的域名.com/about,确认是否跳转到 .../www.landui.com/about (路径是否保留)。
状态码检查:
使用浏览器开发者工具 (F12) -> Network (网络) 标签。
刷新页面,查看第一个请求的状态码是否为 301。
避免死循环:
直接访问 www.你的域名.com,确认页面正常加载,没有再次发生跳转。
问题:配置后网站打不开了,提示重定向次数过多。
原因:Negate (取反) 没有勾选,或者条件写反了。导致 www 域名也匹配了规则,再次跳转到 www.landui.com。
解决:检查 Conditions 中的 Negate 是否已勾选。
问题:移动端或 App 无法访问。
原因:某些旧客户端不支持 301 跳转或 HTTPS。
解决:确保服务器绑定了正确的 SSL 证书,且客户端支持 TLS 1.2+。
通过以上步骤,你就可以完美实现顶级域名到 WWW 的规范化跳转了。