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

如何用.htaccess实现/edit/xxx路径自动指向index.php?

PHP伪静态配置实现动态路径指向index.php

前提条件

  • 确认Apache服务器已启用mod_rewrite模块
  • 站点根目录的Apache配置(httpd.conf或虚拟主机配置)中,对应目录需设置AllowOverride All,允许.htaccess文件生效

.htaccess配置代码

在站点根目录创建或修改.htaccess文件,添加以下规则:

RewriteEngine On

# 排除真实存在的文件和目录,避免静态资源(如图片、CSS、JS)被错误重写
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d

# 将所有非真实文件/目录的请求转发到index.php
RewriteRule ^(.*)$ index.php [L]

规则说明

  • RewriteEngine On:开启URL重写引擎
  • RewriteCond %{REQUEST_FILENAME} !-f:仅当请求的不是真实存在的文件时,执行后续规则
  • RewriteCond %{REQUEST_FILENAME} !-d:仅当请求的不是真实存在的目录时,执行后续规则
  • RewriteRule ^(.*)$ index.php [L]:将符合条件的请求全部转发到index.php,[L]表示这是最后一条规则,停止后续匹配

在index.php中获取动态参数

请求转发后,你可以通过$_SERVER['REQUEST_URI']获取完整请求路径,比如访问xxyz.com/edit/2343时,该变量值为/edit/2343,再自行解析路径提取参数:

$requestUri = $_SERVER['REQUEST_URI'];
// 去除开头的斜杠
$path = ltrim($requestUri, '/');
// 分割路径片段
$pathSegments = explode('/', $path);

// 示例:提取edit后的ID参数
if ($pathSegments[0] === 'edit' && isset($pathSegments[1])) {
    $editId = $pathSegments[1];
    // 这里编写对应ID的业务逻辑
}

针对性优化(可选)

如果仅需匹配/edit/数字这类格式的URL,可将RewriteRule替换为:

RewriteRule ^edit/(\d+)$ index.php?edit_id=$1 [L,QSA]

此时在index.php中可直接通过$_GET['edit_id']获取ID,QSA参数会保留原URL中的其他查询参数(若存在)。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.02 09:56:03