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

.htaccess配置RewriteRule重定向路径到带参数index.php异常求助

问题根因

异常跳转是Apache mod_dir 模块的默认优先级导致的:如果/css是你服务器上真实存在的目录,mod_dir会优先于重写规则执行,自动给路径末尾补/并返回301跳转,跳转后的/css/才会匹配你写的重写规则,最终就生成了/css/?p=css的错误结果。

修复配置

将现有规则替换为以下内容即可:

RewriteEngine On
# 若不需要保留Apache默认的目录自动补斜杠行为,可取消下一行注释
# DirectorySlash Off

# 排除真实存在的文件请求,避免静态资源被重写
RewriteCond %{REQUEST_FILENAME} !-f

# 仅针对/css路径重写用这条规则
RewriteRule ^css/?$ /index.php?p=css [L,QSA]

# 若需要所有一级路径都重写为?p=参数,注释上一条规则,启用下面这条
# RewriteRule ^([^/]+)/?$ /index.php?p=$1 [L,QSA]
规则说明
  • 规则中的/?兼容路径末尾带/和不带/的两种访问场景,不会出现匹配失效的问题
  • 增加RewriteCond过滤真实文件请求,避免站点的图片、js、css等静态资源被重写影响正常访问
  • 单路径规则比全局匹配规则性能更高,无全局需求建议使用固定路径匹配的写法

内容的提问来源于stack exchange,提问作者Fouvet Sébastien

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.04 21:21:00