先确认伪静态是否接管请求,这是apache下路由不生效的最明确信号——请求未进入public/index.php,web服务器直接返回原生404;需检查allowoverride all是否启用、.htaccess是否置于public目录且内容正确、mod_rewrite是否已启用并重启服务。

访问 /user/list 404 但 /index.php/user/list 正常?先确认伪静态是否接管请求
这是 Apache 下路由不生效的最明确信号——请求压根没进 public/index.php,Web 服务器直接返回了原生 404。此时查路由写法、控制器是否存在,都是白忙。
- 用
curl -I http://localhost/user/list看响应头:若没有X-Powered-By: ThinkPHP,说明 PHP 层根本没运行 - 检查浏览器地址栏是否真访问的是
public/目录(不是项目根目录);宝塔用户务必去【网站设置 → 网站目录 → 运行目录】设为/public - 临时把
public/.htaccess重命名为.htaccess.bak,再访问/index.php/user/list—— 如果还能通,说明框架本身没问题,问题只在重写规则
Apache 的 .htaccess 文件是否被允许执行
.htaccess 不是写了就生效,必须被 Apache 显式允许。很多用户卡在这一步却反复改规则。
当代理已经知道网站路由或内容URL,并且在启动前需要有效的sitemap XML、sitemap索引或robots.txt引用时,请使用sitemap。这是一个发布构件技能,而不是爬虫或SEO平台。
- 找到对应虚拟主机的
<directory></directory>块(通常在/etc/apache2/sites-enabled/xxx.conf或/etc/httpd/conf.d/vhost.conf) - 确认包含
AllowOverride All——AllowOverride FileInfo不够,AllowOverride None是默认值,会直接忽略.htaccess -
.htaccess必须放在public/目录下,内容不能少这三行:RewriteEngine On RewriteCond %{REQUEST_FILENAME} !-f RewriteCond %{REQUEST_FILENAME} !-d RewriteRule ^(.*)$ index.php/$1 [QSA,PT,L] - 如果入口文件不在
public/下(比如你把index.php放到了根目录),要把上面index.php/$1改成实际路径,例如./index.php/$1
mod_rewrite 模块是否启用且生效
模块没开,.htaccess 再标准也白搭。Linux 和 Windows 下验证方式不同。
- Ubuntu/Debian 执行:
a2enmod rewrite && systemctl restart apache2 - CentOS/RHEL 编辑
/etc/httpd/conf/httpd.conf,取消注释:LoadModule rewrite_module modules/mod_rewrite.so - WAMP/PHPStudy 用户:托盘图标 → Apache → 模块 → 勾选
rewrite_module - Windows 下可访问
http://localhost/server-info(需开启mod_info)查看已加载模块列表,搜索rewrite
php think route:list 输出为空或不包含你的路由
命令输出空,代表框架连路由文件都没加载——不是语法错,是注册时机或路径错了。
- 确保路由定义在
route/route.php(TP6+ 全局路由)或route/app.php(应用级),而不是控制器、中间件、或app\common.php里 - 别在条件语句中注册路由,例如:
if (env('APP_ENV') === 'dev') { Route::get(...); }—— 环境变量可能尚未初始化 - 检查命名空间和前缀:用了
Route::group(['prefix' => 'api'], function () { ... }),但访问的是/user/list,自然匹配不到 - 删掉
runtime/cache/下所有文件再试,旧缓存会固化错误的路由结构
.htaccess 是否被读取」和「AllowOverride All 是否真生效」这两处。很多人改了规则却没重启 Apache,或改了配置却没确认虚拟主机指向的 <directory></directory> 是哪个路径——这些细节一漏,就卡死在第一步。php免费学习视频:立即使用
踏上前端学习之旅,开启通往精通之路!从前端基础到项目实战,循序渐进,一步一个脚印,迈向巅峰!










