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

使用.htaccess实现URL中/official路径的移除与重定向

根目录.htaccess最终配置

全程只需要修改网站根目录下的.htaccess文件,CI项目自带的目录内.htaccess不需要做任何调整。

完整规则代码

把现有根目录.htaccess的内容替换成以下代码:

RewriteEngine On
RewriteBase /

# 优先处理带/official路径的301永久重定向
# 仅匹配浏览器直接发起的原始请求,从根源避免内部重写导致的规则循环
RewriteCond %{THE_REQUEST} ^[A-Z]{3,9}\ /official(/.*)?\ HTTP/ [NC]
RewriteRule ^official(.*)$ /$1 [R=301,L,NC]

# 原有内部映射逻辑,实现不带/official路径访问CI项目
# 根路径默认指向CI项目目录
RewriteRule ^$ official/ [L]

# 跳过根目录下真实存在的文件、目录,避免误伤其他站点(如WordPress的program目录)
RewriteCond %{REQUEST_FILENAME} !-d
RewriteCond %{REQUEST_FILENAME} !-f
# 将非真实存在的请求路径,内部映射到official目录下的CI项目
RewriteRule ^((?!official/).+)$ official/$1 [L,NC]

实际生效效果

  • 所有带/official前缀的浏览器请求,会自动触发301永久重定向,跳转到去掉该前缀的对应地址:
    • 访问www.example.com/official → 自动跳转到www.example.com/
    • 访问www.example.com/official/member/center → 自动跳转到www.example.com/member/center
  • 重定向完成后,用户访问无/official的地址时,服务器后台会直接映射到official目录下的CI项目处理,用户全程看不到该目录路径
  • 根目录下用于跑WordPress的program目录不受任何规则干扰,保持原有访问逻辑

关键注意事项

  • 规则顺序不能调换:301重定向规则必须放在内部映射规则前面,否则请求会被内部重写拦截,无法触发客户端重定向
  • 301重定向会被浏览器强缓存,测试时建议用无痕窗口,或手动清除浏览器旧缓存再验证,避免之前的旧规则导致测试结果不准
  • 不要修改official目录下CI自带的.htaccess,该规则仅负责CI本身的入口路由,和对外URL重写逻辑完全独立,改动反而可能导致CI路由报错

内容的提问来源于stack exchange,提问作者cah-kangkung

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.25 12:36:03