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

如何配置.htaccess禁止目录列表并将请求转发到my-handler.php?

问题描述

通过.htaccess和PHP实现SEO友好URL时,90%的需求已实现,仅剩余一个场景存在问题:

  • 访问地址http://somesite.com/cms/movies/tarzan时,请求会正常跳转至my-handler.php?the_url=movies/tarzan,符合预期
  • 访问不带路径后缀的目录地址http://somesite.com/cms/时,服务端会直接列出该目录下的所有文件和文件夹,不会交由my-handler.php处理
现有.htaccess配置
<IfModule mod_rewrite.c>
RewriteEngine On

RewriteBase /cms/
RewriteCond %{REQUEST_FILENAME} !/(admin|css|fonts|ico|include|js)/
RewriteRule ^my-handler\.php$ - [L]
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule ^(.*)$ /cms/my-handler.php?the_url=$1 [L,QSA]

</IfModule>
解决方案

已解决

在上述配置中添加DirectoryIndex my-handler.php即可解决问题。该方案无需修改RewriteCond %{REQUEST_FILENAME} !-d规则,不会影响真实物理目录的正常访问。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.02 03:54:00