Jonvy

导航

IIS上部署后,无法通过 /about 访问根目录下的 about.html 文件

如果在 IIS(Internet Information Services) 上部署后,无法通过 /about 访问根目录下的 about.html 文件(返回404错误),可能是因为IIS默认不自动处理无扩展名的URL到 .html 文件的映射。以下是解决方案:


方法1:通过IIS URL重写规则(推荐)

目标:将 /about 重写为 /about.html
步骤:

  1. 确保安装「URL Rewrite」模块

    • 在IIS管理器中,检查是否有「URL Rewrite」功能(如果没有,需先安装:下载链接)。

  2. 添加重写规则

    • 打开IIS管理器,选择你的网站 → 双击「URL Rewrite」 → 点击右侧「Add Rule(s)」。

    • 选择 「Blank Rule」,填写以下配置:

      • Pattern: ^about$
        (匹配 /about,不包括斜杠)

      • Action Type: Rewrite

      • Rewrite URL: about.html

      • 其他选项保持默认。

  3. 保存并测试

    • 访问 http://你的域名/about,应该能正确显示 about.html 内容。


方法2:启用「静态内容」功能

如果IIS未正确识别 .html 文件:

  1. 在服务器上打开「服务器管理器」→「添加角色和功能」。

  2. 确保勾选 「Web Server (IIS)」→「Common HTTP Features」→「Static Content」。

  3. 重启IIS服务。


方法3:添加MIME类型(备用方案)

如果 .html 文件被拦截:

  1. 在IIS管理器中,选择你的网站 → 双击「MIME Types」。

  2. 确保存在以下条目:

    • Extension: .html

    • MIME Type: text/html


方法4:修改默认文档(可选)

如果希望通过 /about/ 访问(目录结构):

  1. 在IIS管理器中,选择你的网站 → 双击「Default Document」。

  2. 添加 about.html 到默认文档列表。


排查工具

  1. 浏览器开发者工具(F12)

    • 检查Network选项卡,确认请求的URL和响应状态码。

  2. IIS日志

    • 默认路径:C:\inetpub\logs\LogFiles\,检查是否有404错误记录。


注意事项

  • 如果网站使用ASP.NET等后端技术,可能需要额外处理路由冲突。

  • 部署后清除浏览器缓存再测试(Ctrl+F5强制刷新)。

通过以上配置,IIS应该能正确处理 /about 到 about.html 的请求。推荐优先使用 URL重写 方案,因为它最灵活且符合现代URL风格。

 
添加重写规则,是选入站规则还是出站规则?
 
 

在 IIS 的 URL Rewrite 模块中,你需要选择 入站规则(Inbound Rules) 来处理 /about 到 about.html 的重写。

为什么是入站规则?

  • 入站规则(Inbound Rules):用于修改客户端(浏览器)发送到服务器的请求,例如:

    • 将 /about 重写为 /about.html

    • 强制 HTTPS 跳转

    • 移除或添加 URL 路径

  • 出站规则(Outbound Rules):用于修改服务器返回给客户端的响应内容(如 HTML、CSS、JS),例如:

    • 替换响应中的某些文本

    • 修改 HTTP 头

具体操作步骤(IIS 管理器)

  1. 打开 URL Rewrite 模块

    • 在 IIS 管理器中,选择你的网站 → 双击 「URL Rewrite」。

  2. 添加入站规则

    • 点击右侧 「Add Rule(s)」 → 选择 「Blank Rule」(空白规则)。

  3. 配置规则

    • Name: Rewrite /about to about.html(自定义名称)

    • Match URL:

      • Requested URL: Matches the Pattern

      • Using: Regular Expressions

      • Pattern: ^about$(匹配 /about,但不匹配 /about/ 或 /about.html

    • Action Type: Rewrite

    • Rewrite URL: about.html(目标文件)

    • 其他选项保持默认。

  4. 保存并测试

    • 访问 http://你的域名/about,应该正确显示 about.html 的内容。

高级选项(可选)

  • 如果希望 /about/(带斜杠)也能访问,可以修改 Pattern 为 ^about/?$(匹配 /about 和 /about/)。

  • 如果需要 忽略大小写,勾选 「Ignore case」 选项。

验证规则是否生效

  • 在 IIS 的 URL Rewrite 界面,点击右侧 「View Server Variables」 或 「Test Pattern」 进行调试。

  • 在浏览器中按 Ctrl+F5 强制刷新,避免缓存影响测试。

这样配置后,IIS 会在收到 /about 请求时,自动将其重写为 about.html,而用户看到的 URL 仍然是简洁的 /about

posted on 2025-07-31 09:02  不亮  阅读(28)  评论(0)    收藏  举报