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

旧.htaccess文件RewriteCond规则末尾HTTP/部分的含义解析

mod_rewrite 规则逐段解释

首先给出完整规则片段:

RewriteEngine on
RewriteCond %{THE_REQUEST} ^[A-Z]{3,9}\ /index\.php\ HTTP/
RewriteRule ^index\.php$ http://www.XXXXXXXXXXXXXXXX.com/ [R=301,L]

规则核心作用

这套规则用于将直接访问index.php的请求301永久重定向到站点根路径,避免首页出现/和/index.php两个可访问地址导致的SEO权重分散问题。


你关注的/index.php\ HTTP/片段及HTTP/的作用说明

首先明确%{THE_REQUEST}这个Apache内置变量的含义:它存储的是客户端发起的原始未修改的HTTP请求行,标准格式为:

[请求方法] [请求资源路径] [HTTP版本]
比如你通过浏览器访问站点的index.php时,服务端拿到的原始请求行类似:GET /index.php HTTP/1.1、POST /index.php HTTP/2等。

现在拆解对应的正则匹配逻辑:

  • 开头^[A-Z]{3,9}\ :匹配请求行开头的请求方法(GET/POST/PUT/DELETE等均为3~9位大写字母,后面紧跟空格)
  • 中间/index\.php\ :匹配请求的资源路径就是/index.php,后面紧跟空格,其中反斜杠是转义符,用来转义特殊字符.和空格
  • 末尾HTTP/:匹配请求行里HTTP版本字段的固定前缀,无论HTTP版本是1.0、1.1、2还是3,版本字段都是以HTTP/开头

加HTTP/的核心作用

是做精准匹配校验,避免规则被误触发:如果没有加这个后缀,那么类似/index.php/article/1、/index.phpabc这类带index.php前缀的路径也会被正则匹配到,加了HTTP/之后,只有请求的资源路径完全等于/index.php,后面直接跟HTTP版本前缀时,规则才会生效,不会误伤其他路径。


后续RewriteRule说明

当RewriteCond匹配通过后,这条规则会将请求301重定向到站点根域名,参数L表示命中这条规则后不再执行后续的重写规则。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.28 18:45:02