laravel - Laravel 应用的 AliasMatch 和 DirectoryMatch
问题描述
我有一个在 Xampp 上运行的 Laravel 应用程序,为此我在 Directory 指令中配置了以下内容:
<Directory "C:/xampp/laravel/1.2.1/public">
Options Indexes FollowSymLinks Includes ExecCGI
AllowOverride All
Require all granted
</Directory>
另外,我有以下别名:
Alias /laravel/1.2.1 "C:/xampp/laravel/1.2.1/public"
我正在尝试找出一种方法来设置等效的 AliasMatch 和 DirectoryMatch 指令,这样每次我需要 Laravel 应用程序的另一个实例时,我就不需要添加另一个别名。即,如果我去 http://localhost/laravel/1.2.2,我应该得到位于 C:/xampp/laravel/1.2.2 的应用程序(但出于安全原因,只有子文件夹“public”应该是可访问的)。
我目前只有两个 Web 应用程序实例;一个在 /laravel/1.2.1 下,一个在 /laravel/1.2.2 下,但很快会添加更多,我不想为每个实例重复上述配置。
我一直在尝试以下设置:
<DirectoryMatch "C:/xampp/laravel/^([0-9]+\.[0-9]+\.[0-9]+\/public)">
Options Indexes FollowSymLinks Includes ExecCGI
AllowOverride All
Require all granted
</DirectoryMatch>
AliasMatch ^/laravel/([0-9]+\.[0-9]+\.[0-9]+)$ "C:/xampp/laravel/$1/public"
但是,如果我尝试访问现有实例(例如 /laravel/1.2.1),我会收到 404 错误,并且会在 URL 中添加一个斜杠(最终会是 http://localhost/laravel/1.0.1/idk如果这是相关的)。如果我尝试一个不存在的(如 /laravel/2.0.5),我会在 apache error.log 中得到 403 Forbidden 和以下内容:
AH01630: client denied by server configuration: C:/xampp/laravel/2.0.5
我真的希望一些 Apache 专家可以在这里帮助我,如果我正在尝试的不是一个好的实践,我当然愿意接受其他选择来实现我的目标。
解决方案
推荐阅读
- angular5 - 有人在 ng-charts 2 中解决了这个问题吗
- c# - C# Xamarin 计时器类不更新视图
- java - 给定Java中的非负数数组,如何找到可能的最大数
- scala - ScalaMeta、ScalaFix 和 SemanticDB 之间的关系
- git - 我如何在 Github Desktop 中“Git stash”?
- python - 获取嵌套的python dict键和值并放在列表中
- ios - 用于 Flutter iOS Swift 设置的谷歌地图
- php - PHP laravel 数据库
- python - 为什么这种碰撞检测不适用于之前创建的对象?
- c# - 后操作中的复杂参数中的所有值都为空