XAMPP本地环境.htaccess规则失效:API目录跳转异常求助
问题分析与解决方法
一、本地访问localhost/API/user跳转到根目录index.php的原因及解决
- Apache的
AllowOverride配置未开启
XAMPP默认可能限制了.htaccess的生效权限。打开XAMPP的Apache配置文件httpd.conf,找到你的网站根目录对应的<Directory>块,确保AllowOverride All(默认可能是AllowOverride None)。示例配置:
<Directory "C:/xampp/htdocs/你的网站目录"> AllowOverride All Require all granted </Directory>
修改后重启Apache,API目录下的.htaccess才能正常生效。
- API目录的
RewriteBase配置错误
根目录的RewriteBase /适配根路径,但API目录的.htaccess沿用相同配置会导致规则基于根目录解析。把API目录的.htaccess里的RewriteBase /改成RewriteBase /API/,这样Rewrite规则会基于API目录处理请求,重定向到API/index.php而非根目录文件。
二、本地必须添加Options -MultiViews的原因
MultiViews是Apache的内容协商功能:开启状态下,若请求localhost/test,Apache会自动匹配并返回test.php这类同名文件,不会走你的Rewrite规则。
- Hostinger服务器的全局Apache配置默认关闭了
MultiViews,因此无需在.htaccess中额外声明。 - XAMPP默认开启
MultiViews,所以必须手动添加Options -MultiViews禁用该功能,才能让你的Rewrite规则正常接管不存在的文件/目录请求,避免直接访问到test.php类文件导致代码异常。
内容的提问来源于stack exchange,提问作者hend
相关产品推荐
相关产品推荐

