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

如何通过.htaccess捕获特定目录所有URL请求并转发处理?

实现方案

这其实是Apache URL重写的典型场景,直接在/directory/.htaccess文件中添加以下规则即可实现需求:

RewriteEngine On

# 排除index.php本身,防止出现循环重写
RewriteCond %{REQUEST_URI} !^/directory/index\.php$
# 将当前目录下所有请求内部转发到index.php,保留原始URL
RewriteRule ^.*$ index.php [L]

规则详解

  • RewriteEngine On:开启Apache的mod_rewrite模块,这是所有URL重写规则生效的前提,必须放在规则最开头。
  • RewriteCond %{REQUEST_URI} !^/directory/index\.php$:这条条件用来避免服务器陷入无限循环——当请求已经指向index.php时,就不再执行后续的重写规则。
  • RewriteRule ^.*$ index.php [L]:核心重写规则,匹配directory目录下的所有请求路径(^.*$表示任意字符组合),然后内部转发到当前目录的index.php处理。[L]标记表示这是最后一条执行的规则,处理完就停止后续规则解析。

额外说明

  1. 确保你的Apache服务器已经启用了mod_rewrite模块,如果没开启的话,需要在服务器配置中启用它(比如通过a2enmod rewrite命令,具体根据你的服务器环境调整)。
  2. 用户浏览器地址栏的URL不会发生变化,所有转发都是服务器内部完成的。
  3. 在index.php中,你可以通过$_SERVER['REQUEST_URI']变量获取到用户原始请求的完整路径,比如访问http://www.xxx.co/directory/somethingelse时,$_SERVER['REQUEST_URI']的值就是/directory/somethingelse,你可以基于这个值做对应的业务逻辑处理。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.27 04:18:05