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

本地环境下.htaccess配置PHP重定向失效问题排查

解决MVC框架的.htaccess重写问题

你当前的配置存在两处关键问题:

  • 第一条RewriteCond额外添加了\.php,会错误地去检查请求路径.php是否存在,不符合实际需求
  • RewriteRule的匹配规则^([A-Za-z0-9-]+)?$范围过窄,仅能匹配字母、数字、横杠组成的单级路径,无法覆盖多级路径或包含其他字符的请求

替换为以下配置,放在public目录下的.htaccess文件中即可实现需求:

<IfModule mod_rewrite.c>
    DirectoryIndex index.php
    RewriteEngine On

    # 跳过真实存在的文件和目录,确保静态资源正常访问
    RewriteCond %{REQUEST_FILENAME} !-f
    RewriteCond %{REQUEST_FILENAME} !-d

    # 将所有非真实资源的请求转发到index.php,保留完整请求路径作为url参数
    RewriteRule ^(.*)$ index.php?url=$1 [QSA,L]
</IfModule>

配置说明:

  • !-f和!-d分别排除真实存在的文件和目录,比如图片、CSS等静态资源不会被重写
  • ^(.*)$匹配所有请求路径,包括多级路径(如adjoasdjaos/abc/123)
  • [QSA]保留原请求的查询字符串,比如localhost/mvc/public/adjoasdjaos?id=1会被转发为index.php?url=adjoasdjaos&id=1
  • [L]标记为最后一条规则,停止后续重写规则的执行

额外注意:确保你的Apache服务器已开启mod_rewrite模块,Linux环境可通过a2enmod rewrite命令开启,之后重启Apache服务生效。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.29 01:27:21