laravel - 其他路由而不是默认路由不适用于 XAMPP
问题描述
我有我的 Laravel 项目,如果我使用地址“localhost/app/public”,则不能在我的 localhost XAMPP 上运行localhost/app/public/anyother”它显示错误消息,404 | 未找到。虽然默认和所有其他路由都适用于“php artisan serve”。
有两件事我想知道希望你不会介意。
1. Laravel自己的应用服务器上的XAMPP如何解决这个问题,所有路由都可以正常访问?
2. 为什么其他路由在本地 XAMPP 中不起作用,而在“php artisan serve”中运行良好?
我发现在 XAMPP 上运行 Laravel App 是:-
使用 xampp:
转到 C:\Windows\System32\drivers\etc\hosts 并添加一个新行,如: 127.0.0.1 yoursite.local 转到 xampp\apache\conf\extra\httpd-vhosts.conf 下安装 XAMPP 的位置 然后添加一个文件底部的虚拟主机,例如:
<VirtualHost *:80>
DocumentRoot "PATH_to_laravel_folder/public"
ServerName yoursite.local
</VirtualHost>
如果我为我的第 1 点接受此解决方案,是否有任何其他解决方案不创建虚拟主机?如果我想使用 XAMPP 提供的 URL,例如“localhost/app/public”,还有其他解决方案吗?
解决方案
你的虚拟主机不好。您忘记了Directory
规范标签并且不允许索引。
尝试编辑httpd-vhosts.conf
位于C:\xampp\apache\conf\extra\httpd-vhosts.conf
这样的位置:
# VirtualHost for LARAVEL.DEV
<VirtualHost laravel.dev:80>
DocumentRoot "C:\xampp\htdocs\laravel\public"
ServerAdmin laravel.dev
<Directory "C:\xampp\htdocs\laravel">
Options Indexes FollowSymLinks
AllowOverride All
Require all granted
</Directory>
</VirtualHost>
您可以找到更多Apache 文档
<Directory>
并</Directory>
用于包含一组指令,这些指令仅适用于命名目录、该目录的子目录以及相应目录中的文件。
换句话说,Apache Web 服务器自动索引生成是通过 usingOptions +Indexes
或Options Indexes
指令启用的。
如果请求映射到目录的 URL,并且
DirectoryIndex
该目录中没有,mod_autoindex
则将返回该目录的格式化列表。
推荐阅读
- flutter - Flutter pageView setOffscreenPageLimit 替代
- flutter - 如何在颤动中使用保留名称作为变量
- java - 使用 Javalin 将 java.util.Date 转换为 Java.sql.Date
- jpa - Spring Data JPA 按计算字段排序
- java - Eclipse 启动程序执行时间过长
- javascript - 在节点 js 中使用电子邮件或电话或用户名登录
- django - AWS EB:未解决的资源依赖关系
- nginx - NGINX – 在单个服务器上服务多个 SPA
- python - Pandas CSV 的 KeyError
- javascript - 基于对象数组中唯一键的分组