如何配置IIS让斜杠开头的内部链接指向站点根而非服务器根
IIS 10配置:让正斜杠开头的资源链接指向站点根目录
核心问题说明
在IIS上部署多站点时,页面中/css/styles.css这类正斜杠开头的资源链接,默认会指向IIS服务器根目录(通常为C:\inetpub\wwwroot),而非当前站点的根目录。以下分两种场景给出解决方法:
场景1:站点为独立站点(绑定独立端口/主机头)
这类站点拥有独立访问入口,只需确保基础配置正确:
- 设置唯一站点绑定:打开IIS管理器,进入目标站点的「绑定」设置,添加独立端口(如站点1用8080,站点2用8081)或主机头(如
site1.local、site2.local,需配合本地hosts文件配置)。 - 验证物理路径:进入站点「基本设置」,确认物理路径指向当前站点的根文件夹(而非服务器默认的
wwwroot)。 - 关联独立应用池:确保每个站点绑定独立应用池,应用池的「.NET CLR版本」与站点技术栈匹配(静态站点选「无托管代码」)。
完成后,通过对应端口/域名访问站点时,/css/styles.css会自动指向当前站点根目录下的css文件夹。
场景2:站点为虚拟目录(同域名下的子路径,如http://localhost/site1)
若站点以虚拟目录形式存在,正斜杠开头的链接会默认跳转至服务器根,需通过URL重写规则修正:
安装URL重写模块:从微软官方渠道安装IIS URL重写模块(IIS管理器中出现「URL重写」图标即安装成功)。
创建重写规则:
- 进入虚拟目录的「URL重写」设置,点击「添加规则」→选择「空白规则」。
- 规则名称:自定义(如「Rewrite Virtual Resource Path」)。
- 匹配URL:
- 请求路径:
^(css|js|images)/(.*)$(按需添加需要重写的资源文件夹)。 - 使用:正则表达式,勾选「忽略大小写」。
- 请求路径:
- 条件:
- 添加条件:输入
{HTTP_HOST},匹配模式填你的域名(如^localhost$)。 - 添加条件:输入
{REQUEST_URI},匹配模式^/(css|js|images)/。
- 添加条件:输入
- 操作:
- 操作类型:重写。
- 重写URL:
/site1/{R:1}/{R:2}(将site1替换为你的虚拟目录名称)。 - 勾选「追加查询字符串」与「停止处理后续规则」。
测试规则:保存后刷新页面,通过浏览器开发者工具的「网络」面板查看资源请求路径,确认
/css/styles.css已重写为/site1/css/styles.css。
内容的提问来源于stack exchange,提问作者GB Systems
相关产品推荐
相关产品推荐

