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

.htaccess配置RewriteRule后如何实现根目录正常访问index.php

问题原因

当前重写规则的正则^([a-zA-Z0-9_-]*)/?$中,量词*表示匹配前置字符集0次或多次,站点根路径的空路径内容刚好符合0次匹配的规则,因此会被转发到producto-test.php,同时携带空值的stock参数,导致无法正常加载index.php。

修复方案

选择以下任意一种方式调整即可:

方案1:修改正则匹配量词(推荐,最简洁)

将正则中的量词*替换为+,+表示匹配前置字符集1次及以上,这样空的根路径就不会命中这条重写规则,服务器会自动加载目录下的index.php。调整后的完整配置:

RewriteEngine On
RewriteRule ^([a-zA-Z0-9_-]+)/?$ producto-test.php?stock=$1 [QSA]

方案2:增加重写条件排除根路径

如果后续需要保留0次匹配的逻辑,可以增加重写判断条件,明确排除根目录的请求:

RewriteEngine On
# 根路径请求不执行后续重写
RewriteCond %{REQUEST_URI} !^/$
RewriteRule ^([a-zA-Z0-9_-]*)/?$ producto-test.php?stock=$1 [QSA]
效果验证

调整配置后:

  • 访问http://www.example.com/时不会命中重写规则,正常加载index.php
  • 访问类似http://www.example.com/sku123的路径时,会正常转发到producto-test.php?stock=sku123,原有的查询参数保留逻辑(QSA标记)不受影响

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.29 04:54:37