You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Chrome/IE使用主机名访问IIS部署PHP站点特定目录出现404错误问题问询

问题解决方案

优先推荐的低成本方案(无需全站替换绝对路径)

  • 配置HTML <base> 标签统一相对路径基准
    在所有页面的<head>标签最顶部加入base标签,动态生成站点根路径即可,示例PHP代码:
    <head>
    <?php
    $protocol = (!empty($_SERVER['HTTPS']) && $_SERVER['HTTPS'] !== 'off' || $_SERVER['SERVER_PORT'] == 443) ? "https://" : "http://";
    $basePath = $protocol . $_SERVER['HTTP_HOST'] . '/';
    ?>
    <base href="<?php echo $basePath; ?>">
    <!-- 其他head内容 -->
    </head>
    
    加了这个标签之后,页面内所有相对路径的资源、链接都会统一以这个base路径为基准拼接,彻底解决不同浏览器的解析差异问题,不需要修改原有相对路径代码。
  • 替换现有相对路径为根相对路径
    如果不想加base标签,可以把所有资源引入的相对路径改成以/开头的根相对路径,比如把../css/main.css改成/css/main.css,这种路径是直接基于站点根目录解析,所有浏览器解析逻辑完全一致,改造成本远低于全写带域名的绝对路径。

需同步排查的服务端配置问题

你提到有ERR_CONNECTION_RESET报错,这个不是单纯的路径解析问题,需要同步排查IIS配置:

  • 检查IIS站点绑定配置:确认主机名对应的站点绑定和localhost的绑定是否一致,端口、协议(HTTP/HTTPS)、证书配置是否完全相同,Chrome和IE对HTTPS证书错误、端口不匹配的容错率低于Firefox/Edge,很容易触发连接重置。
  • 检查IIS请求过滤规则:确认是否有针对特定User-Agent的过滤规则,Chrome和IE的UA可能触发了拦截规则导致请求被重置。
  • 对比不同浏览器的请求路径:打开Chrome的F12网络面板,查看404资源的实际请求URL,和Edge正常请求的URL做对比,确认路径拼接的差异点,定位是相对路径基准的问题还是服务端路由的问题。

关于是否需要替换全站绝对路径

不需要全站替换带域名的绝对路径,上述的base标签或者根相对路径方案已经可以解决路径解析差异问题,而且适配性更强,同时支持localhost、主机名、域名等多种访问方式,不需要根据访问环境修改代码。

内容的提问来源于stack exchange,提问作者Nana

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.10.01 07:39:06