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

如何通过.htaccess与PHP实现根目录index.php承接所有URL请求

实现方案

1. 环境确认

首先确认你的站点使用Apache服务,且已开启mod_rewrite扩展,同时站点目录配置了AllowOverride All(允许.htaccess文件生效)。

2. 配置.htaccess文件

在站点根目录新建.htaccess文件,写入如下规则:

RewriteEngine On
# 排除真实存在的文件、目录,避免静态资源无法访问
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
# 所有请求转发至根目录index.php处理
RewriteRule ^(.*)$ index.php [L,QSA]

规则说明:

  • !-f:若请求路径对应真实存在的文件,不触发重写
  • !-d:若请求路径对应真实存在的目录,不触发重写
  • [L]:匹配到当前规则后不再执行后续重写规则
  • [QSA]:保留原URL携带的查询参数,转发后仍可通过$_GET获取对应参数值

如果你需要把真实文件、目录的请求也全部交给index.php处理,直接删除上述两个RewriteCond行即可。

3. PHP端业务实现

配置生效后,你可以直接在根目录的index.php中获取请求路径开发业务逻辑,示例代码如下:

<?php
// 获取完整请求URI(包含路径和查询参数)
$url = $_SERVER['REQUEST_URI'];
// 若只需要路径部分,可通过parse_url拆分
$requestPath = parse_url($url, PHP_URL_PATH);
// 后续业务逻辑
// ...
?>

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.03 20:39:02