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

PHP自制基础Router在WAMP服务器中出现Page Not Found错误求助

问题分析与解决方案

核心原因

PHP内置开发服务器会自动将不存在文件/路径的请求转发到入口脚本(如index.php),因此你的Router能接收所有请求并处理路由;但Wamp的Apache默认没有这个行为——当访问/about这类虚拟路径时,Apache会直接去网站目录寻找同名的文件或文件夹,找不到就返回404,根本没把请求传递给你的Router脚本。

解决步骤

1. 启用Apache的mod_rewrite模块

打开Wamp的httpd.conf配置文件,找到以下行:

#LoadModule rewrite_module modules/mod_rewrite.so

去掉行首的#注释,保存后重启Wamp服务。

2. 添加URL重写规则(创建.htaccess文件)

在你的网站根目录下新建.htaccess文件,写入以下规则:

RewriteEngine On
# 跳过实际存在的文件/目录的重写
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
# 将所有非真实文件/目录的请求转发到入口脚本(这里假设是index.php)
RewriteRule ^(.*)$ index.php [QSA,L]

如果你的入口脚本不是根目录的index.php,请修改规则中的目标路径。

3. 允许.htaccess生效

在httpd.conf中找到对应网站根目录的<Directory>配置块(例如DocumentRoot "c:/wamp/www"对应的<Directory "c:/wamp/www">),将:

AllowOverride None

修改为:

AllowOverride All

保存配置后重启Wamp服务。

验证

完成上述配置后,重新访问/about、/about/create等路由,Apache会将请求转发到你的Router脚本,即可正常处理路由逻辑。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.21 03:10:34