首次在本地XAMPP服务器运行Laravel项目时遭遇403访问禁止错误
解决XAMPP本地运行Laravel的403访问禁止问题
嘿,这个403问题我在Stack Overflow上帮不少开发者解决过,刚好是XAMPP跑Laravel最常见的坑之一,给你列几个一步步排查的方法:
确认访问路径正确:Laravel的入口文件在
public目录下,如果你直接访问localhost/你的项目名会因为没有索引文件触发403。正确的访问路径应该是localhost/你的项目名/public。如果嫌每次加public麻烦,后面可以看虚拟主机的配置方法。检查目录权限:
- Windows系统:右键你的Laravel项目文件夹 → 属性 → 安全,确保当前登录用户拥有读取、写入的权限,必要时点击“高级”按钮继承权限到子文件夹。
- 如果你用WSL或Linux环境,执行以下命令给目录赋权:
chmod -R 755 /path/to/your/laravel/project chmod -R 775 storage bootstrap/cache
Laravel需要
storage和bootstrap/cache目录的写入权限来生成日志和缓存,这两个目录权限不对也可能导致403或其他错误。开启Apache的mod_rewrite模块:
打开XAMPP控制面板里的Apache配置文件(httpd.conf),找到下面这一行,把前面的#删掉:#LoadModule rewrite_module modules/mod_rewrite.so然后找到
DirectoryIndex配置,确保包含index.php:DirectoryIndex index.php index.html index.htm修改后重启Apache服务。
验证public目录下的.htaccess文件:
Laravel的public目录里必须有正确的.htaccess文件,用来处理URL重写。如果文件丢失或内容错误,也会导致403。正常的内容应该是:<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>如果文件不存在,直接复制上面的内容新建一个即可。
设置虚拟主机(推荐):
想直接用自定义域名访问项目(比如yourproject.test),可以配置虚拟主机:- 打开XAMPP的
apache/conf/extra/httpd-vhosts.conf文件,添加以下配置:<VirtualHost *:80> DocumentRoot "C:/xampp/htdocs/你的项目名/public" ServerName yourproject.test </VirtualHost> - 修改Windows的
hosts文件(路径:C:\Windows\System32\drivers\etc\hosts),添加一行:127.0.0.1 yourproject.test - 重启Apache,之后直接在浏览器输入
yourproject.test就能访问项目,不会再出现403问题。
- 打开XAMPP的
内容的提问来源于stack exchange,提问作者Naveed Ul Islam
相关产品推荐
相关产品推荐

