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

使用URL Rewriting移除URL子路径不生效且其他站点URL无法访问求助

mod_rewrite 单URL重写故障排查

问题根源

你的重写规则存在两处核心错误,导致全局URL被劫持:

  1. 跳转规则逻辑错误:原规则中匹配到旧URL后直接跳转到/%1也就是/page1.php,完全没有匹配你需要的/customPage目标路径,不符合需求。
  2. 全局转发规则范围过宽:最后一条规则RewriteRule (?!^FOF/news/page/)^(.*)$ /FOF/news/page/$1 [L,NC](你原规则中L?NC为语法错误,应为逗号分隔)会将所有不在FOF/news/page路径下、且不是真实存在的文件的请求,全部转发到FOF/news/page目录下,直接导致站点首页、其他目录的请求全部被劫持,无法正常访问。

修复后的规则

仅针对你需要的单个特定URL做重写,完全不会影响其他页面访问:

Options +FollowSymlinks
RewriteBase /    
RewriteEngine on    

# 旧URL 301永久跳转到新的美观URL
RewriteCond %{THE_REQUEST} ^[A-Z]{3,}\s/+FOF/news/page/page1\.php\s [NC]
RewriteRule ^ /customPage? [R=301,L]

# 内部将新URL映射到实际的php文件,地址栏保持新URL不变
RewriteRule ^customPage$ /FOF/news/page/page1.php [L,NC]

注意事项

测试前请先清除浏览器缓存,301永久重定向会被浏览器默认缓存,不清缓存会导致旧规则残留影响测试结果。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.14 14:27:03