Laravel项目部署后仅首页可访问,点击链接报404错误求助
Laravel部署后非首页404问题解决方案
排查及修复步骤
确认mod_rewrite模块已启用
Apache服务器必须开启mod_rewrite模块才能支持Laravel的URL重写。可以通过phpinfo()页面查看模块状态,或联系服务器管理员启用该模块。调整网站根目录指向
Laravel的入口文件位于项目的public目录下,正确部署方式是将服务器的网站根目录设置为项目的public文件夹,而非整个项目根目录。若直接将项目上传至wwwroot,需修改服务器根目录配置,确保请求直接指向public目录。修正.htaccess重写规则
当前规则在部分服务器环境下可能不兼容,可替换为以下两种适配性更强的规则:
方案一:<IfModule mod_rewrite.c> Options +FollowSymLinks -Indexes RewriteEngine On RewriteCond %{REQUEST_FILENAME} !-d RewriteCond %{REQUEST_FILENAME} !-f RewriteRule ^ index.php [L] </IfModule>方案二(适配需要参数传递的服务器):
<IfModule mod_rewrite.c> RewriteEngine On RewriteCond %{REQUEST_FILENAME} !-f RewriteCond %{REQUEST_FILENAME} !-d RewriteRule ^(.*)$ index.php?$1 [L] </IfModule>配置Apache的AllowOverride权限
在服务器的虚拟主机配置或httpd.conf文件中,确保网站目录的AllowOverride设置为All,否则.htaccess文件的规则无法生效。示例配置:<Directory "/path/to/your/project/public"> AllowOverride All Require all granted </Directory>
修改后需重启Apache服务。
- 清除路由缓存
若本地生成过路由缓存,上传至服务器后可能导致路由匹配异常。在服务器终端执行以下命令清除缓存:php artisan route:clear
内容的提问来源于stack exchange,提问作者Igor Fernando Maposse
相关产品推荐
相关产品推荐

