Laravel新项目异常:显示Index of/而非欢迎页如何解决?
解决Laravel项目在XAMPP上显示文件列表而非欢迎页的问题
遇到这种情况太常见了,大概率是Apache没正确指向Laravel的入口文件(public/index.php),或者URL重写相关配置没到位。给你几个靠谱的解决办法,按步骤来就行:
配置虚拟主机(推荐长期方案)
这是最规范的做法,能避免后续很多路径相关的坑:- 打开XAMPP的Apache配置目录,找到
conf/extra/httpd-vhosts.conf文件并编辑,添加以下内容(记得把你的项目路径替换成实际的项目public文件夹路径,比如C:/xampp/htdocs/name/public):<VirtualHost *:80> DocumentRoot "你的项目路径/public" ServerName laravel.test <Directory "你的项目路径/public"> AllowOverride All Require all granted </Directory> </VirtualHost> - 打开系统的hosts文件:
- Windows系统路径:
C:\Windows\System32\drivers\etc\hosts - Mac/Linux系统路径:
/etc/hosts
在文件末尾添加一行:127.0.0.1 laravel.test
- Windows系统路径:
- 重启XAMPP的Apache服务,之后访问
http://laravel.test就能看到Laravel的欢迎页了。
- 打开XAMPP的Apache配置目录,找到
临时应急方案:直接访问public目录
如果不想折腾虚拟主机,也可以直接在浏览器里输入http://localhost/name/public,这样也能进入Laravel的欢迎页,但这只是临时解决办法,不推荐长期使用。开启Apache的mod_rewrite模块
Laravel的URL重写功能依赖这个模块,检查并开启它:- 打开XAMPP的
conf/httpd.conf文件,找到#LoadModule rewrite_module modules/mod_rewrite.so这一行,去掉前面的#注释符。 - 找到
<Directory "你的XAMPP htdocs路径">(比如C:/xampp/htdocs),把里面的AllowOverride None改成AllowOverride All,这样.htaccess文件才能生效。 - 重启Apache服务。
- 打开XAMPP的
检查public目录下的.htaccess文件
如果public文件夹里没有.htaccess文件,或者规则不正确,手动创建或替换成以下内容:<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>
内容的提问来源于stack exchange,提问作者DEan
相关产品推荐
相关产品推荐

