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

XAMPP本地环境.htaccess重定向失效,请求404问题求助

解决XAMPP下.htaccess重写导致的404错误(Windows 10环境)

你的核心问题是**.htaccess中的RewriteRule路径指向错误**:你的.htaccess和index.php都在public文件夹下,原规则里的/index.php是网站根目录(XAMPP的htdocs)的绝对路径,服务器找不到该位置的index.php,因此触发404。以下是针对性解决方案:

1. 修正.htaccess的重写规则

将原规则中的绝对路径改为相对路径,确保指向当前public目录下的index.php:

RewriteEngine on
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule ^(.*)$ index.php [NC,L,QSA]

如果public是网站根目录的子文件夹(比如htdocs/your-project/public),也可以用绝对路径明确指定:

RewriteEngine on
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule ^(.*)$ /your-project/public/index.php [NC,L,QSA]

2. 确认Apache目录权限配置

打开XAMPP的Apache配置文件(httpd.conf),找到对应项目public目录的<Directory>块,确保AllowOverride All已正确设置:

<Directory "C:/xampp/htdocs/your-project/public">
    Options Indexes FollowSymLinks MultiViews
    AllowOverride All
    Require all granted
</Directory>

修改后必须重启Apache服务才能生效。

3. 验证basePath函数的正确性

确保你的basePath函数能正确拼接控制器文件路径,示例如下:

function basePath($path) {
    // __DIR__ 代表index.php所在的public目录
    return __DIR__ . '/' . $path;
}

错误的路径拼接会导致控制器文件无法加载,间接触发404。

4. 确认Rewrite模块已启用

再次检查httpd.conf中Rewrite模块的加载行是否未被注释:

LoadModule rewrite_module modules/mod_rewrite.so

若开头有#注释符,去掉后重启Apache。

5. 测试路由访问

  • 未配置虚拟主机时,访问路径应为http://localhost/your-project/listings
  • 已配置虚拟主机并将根目录指向public时,直接访问http://your-local-domain.test/listings

你之前修改RewriteRule出现500错误,说明重写规则已生效,只是路径错误导致服务器无法找到目标文件,修正路径后即可解决问题。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.26 14:40:59