CSS链接触发ERR_TOO_MANY_REDIRECTS问题排查求助
解决article-output.php的CSS路径错误与重定向循环问题
这个问题我太熟悉了!很多人用URL重写的时候都会踩相对路径的坑,还顺带触发重定向循环,给你几个实用的解决办法:
1. 改用绝对路径加载CSS(最直接的方案)
把CSS引用的相对路径改成根目录绝对路径(前面加斜杠/),这样不管当前URL看起来在哪个“虚拟子目录”,浏览器都会直接从网站根目录定位CSS文件,彻底规避相对路径的混乱。
比如头部文件里原来的CSS引用:
<link rel="stylesheet" href="css/style.css">
修改为:
<link rel="stylesheet" href="/css/style.css">
2. 修复.htaccess的重写规则,避免循环
你当前的重写规则可能缺少必要的条件判断,导致浏览器反复重定向触发ERR_TOO_MANY_REDIRECTS。可以调整规则,只对不存在的文件/目录生效,同时明确重写逻辑:
RewriteEngine On # 仅当请求的不是真实文件或目录时才执行重写 RewriteCond %{REQUEST_FILENAME} !-f RewriteCond %{REQUEST_FILENAME} !-d # 将 /articles/xxx 重定向到 article-output.php?id=xxx RewriteRule ^articles/([a-zA-Z0-9-]+)$ article-output.php?id=$1 [L,QSA]
[L]标记表示这是最后一条规则,防止后续规则干扰;[QSA]表示保留原URL的查询参数,避免参数丢失或冲突。
3. 用<base>标签统一基准URL
在HTML的<head>区域添加<base>标签,指定页面所有相对路径的基准根URL,这样所有资源引用都会自动基于这个基准解析:
<head> <base href="/"> <!-- 其他头部内容 --> <link rel="stylesheet" href="css/style.css"> </head>
这个方法不用逐个修改资源路径,一次设置全局生效。不过要注意,如果页面里有锚点链接(比如#section1),可能会受<base>标签影响,需要测试确认。
内容的提问来源于stack exchange,提问作者Neil
相关产品推荐
相关产品推荐

