如何通过IIS将域名路由至嵌套的默认文档
解决IIS中xyz.domain.com根域名跳转至/helpspot/admin.php的问题
我之前也碰到过一模一样的情况——默认文档设置不生效是因为IIS的默认文档只能识别站点根目录下的文件名,不能带子路径(比如/helpspot/admin.php这种带目录的路径它不认)。给你几个实操性强的解决方法,按优先级推荐:
方法1:用URL重写模块创建精准重写/重定向规则(最推荐)
这是最灵活的方式,只会把根域名的请求导向目标页面,不影响其他路径的访问:
- 打开IIS管理器,定位到你的
xyz.domain.com站点 - 在右侧功能视图里找到并双击「URL重写」
- 点击右侧操作栏的「添加规则」,选择「空白规则」
- 按下面的配置填写:
- 名称:随便起个好记的,比如
Root to Helpspot Admin - 匹配URL:
- 请求路径:选「与模式匹配」
- 模式:输入
^$(这个正则匹配空路径,也就是根域名访问的情况) - 勾选「忽略大小写」
- 条件:保持默认即可,不需要额外添加
- 操作:
- 操作类型:选「重定向」(地址栏会显示完整的
/helpspot/admin.php路径)或者「重写」(地址栏还是根域名,后台悄悄转发请求),看你的需求选 - 重定向/重写URL:输入
/helpspot/admin.php - 重定向类型(如果选重定向的话):推荐「永久(301)」,对SEO友好;临时需求选「临时(302)」
- 勾选「追加查询字符串」(如果需要保留原请求的参数的话)
- 操作类型:选「重定向」(地址栏会显示完整的
- 名称:随便起个好记的,比如
- 点击「应用」,然后直接访问
xyz.domain.com测试就行
方法2:根目录创建跳转文件+设置默认文档
如果你的站点支持PHP或者静态HTML,可以用这个简单粗暴的方式:
用PHP跳转(如果站点装了PHP环境)
在站点根目录新建一个index.php文件,内容如下:
<?php // 永久重定向到目标页面 header("Location: /helpspot/admin.php", true, 301); exit; ?>
然后在IIS的「默认文档」设置里,把index.php移到最顶部,这样访问根域名时,IIS会优先加载这个文件,自动完成跳转。
用HTML meta跳转(无环境要求)
在根目录新建index.html文件,内容:
<!DOCTYPE html> <html> <head> <!-- 0秒后自动跳转,数字可以改 --> <meta http-equiv="refresh" content="0; url=/helpspot/admin.php"> </head> <body> 正在跳转到管理页面... </body> </html>
同样把index.html设为默认文档的首位即可。
方法3:用HTTP重定向(适合全站只有这一个入口的情况)
这个方法要谨慎,因为如果不设置条件,会把所有请求都重定向到目标页面:
- 打开站点的「HTTP重定向」功能
- 勾选「将请求重定向到此目标」,输入
/helpspot/admin.php - 选择重定向类型(301或302)
- 如果你只想重定向根域名,需要点击「添加」按钮,添加条件:
- 条件输入:
{REQUEST_URI} - 检查输入字符串:「与模式匹配」
- 模式:
^/$
这样就只会对根路径的请求生效了。
- 条件输入:
最后再提一句:确保IIS对/helpspot目录和admin.php文件有读取权限(不过你输入完整路径能访问,应该没问题),如果还是有问题,可以检查一下URL重写模块是否已经安装(没装的话需要在服务器管理器里添加)。
内容的提问来源于stack exchange,提问作者ang
相关产品推荐
相关产品推荐

