Laravel新页面无法渲染,访问/about出现404错误求助
Laravel About页面404错误的解决指南
兄弟,我来帮你搞定这个Laravel新手常见的404问题!先理清楚你的情况:
- 主页
https://localhost/laravel/能正常访问,对应根路由没问题 - 新增的
about路由配置好了,但访问https://localhost/laravel/about就404 - 你的.htaccess内容看起来被截断了
下面是一步步的排查和解决方法:
1. 补全.htaccess文件的规则
你的.htaccess内容不完整,Laravel的public文件夹下的.htaccess需要包含请求转发到index.php的核心规则,否则服务器不知道把about这类请求交给Laravel处理。完整的正确内容应该是这样的:
<IfModule mod_rewrite.c> <IfModule mod_negotiation.c> Options -MultiViews -Indexes </IfModule> RewriteEngine On # Handle Authorization Header RewriteCond %{HTTP:Authorization} . RewriteRule .* - [E=HTTP_AUTHORIZATION:%{HTTP:Authorization}] # Redirect Trailing Slashes If Not A Folder... RewriteCond %{REQUEST_FILENAME} !-d RewriteCond %{REQUEST_URI} (.+)/$ RewriteRule ^ %1 [L,R=301] # Send Requests To Front Controller... RewriteCond %{REQUEST_FILENAME} !-d RewriteCond %{REQUEST_FILENAME} !-f RewriteRule ^ index.php [L] </IfModule>
把你的.htaccess替换成上面的内容,然后再试试访问about页面。
2. 确认Apache的mod_rewrite模块已启用
这是新手最容易踩的坑!如果Apache没开rewrite模块,.htaccess的规则根本不会生效。
- 打开Apache的配置文件(比如
httpd.conf或者apache2.conf,根据你的系统不同位置可能有差异) - 找到
LoadModule rewrite_module modules/mod_rewrite.so这一行,把前面的#删掉(如果有的话) - 重启Apache服务,比如运行
sudo service apache2 restart(Linux)或者在XAMPP/WAMP里重启Apache
3. 检查虚拟主机的AllowOverride设置
如果你配置了虚拟主机(或者用的是XAMPP/WAMP的默认配置),要确保在Laravel的public目录对应的<Directory>块里设置了AllowOverride All,这样.htaccess的规则才能被服务器识别。示例配置:
<Directory "/path/to/your/laravel/public"> AllowOverride All Require all granted </Directory>
如果AllowOverride是None,那.htaccess等于白写,路由肯定解析不了。改完记得重启Apache。
4. 确认about视图文件存在
虽然这种情况一般报500而不是404,但还是确认下:resources/views/about.blade.php(或者about.php)是不是真的在正确的位置?文件名有没有拼错?大小写有没有问题?
5. 清除路由缓存
如果你之前运行过php artisan route:cache命令,新添加的路由可能没被加载到缓存里。打开终端,进入Laravel项目根目录,运行:
php artisan route:clear
清除完缓存再试试访问about页面。
按照上面的步骤一步步来,应该就能解决你的404问题啦!
内容的提问来源于stack exchange,提问作者Naishu Babu
相关产品推荐
相关产品推荐

