我刚刚发现Laravel Homestead允许动态域映射。在this tutorial作者用这种方式描述了他的映射:
sites:
- map: '~^(?<project>.+)\.app$'
to: /home/vagrant/Code/\$project/public
我希望自动映射所有.dev域名,加上我使用的是实际的域名文件夹名称,所以我在代码段中更改了它并将其简化了一点。我得到了这个:
sites:
- map: ~(?<project>.+)
to: /home/vagrant/www/\$project/public
它完美无缺,但我很好奇它是否可以更简化。我试过这个,但它不起作用:
sites:
- map: ~.+
to: /home/vagrant/www/\$0/public
这两个都没有:
sites:
- map: ~(.+)
to: /home/vagrant/www/\$1/public
我想更好地理解这种语法。
答案 0 :(得分:1)
在这里使用命名捕获是最安全的方法。根据{{3}}:
命名的正则表达式捕获稍后可以用作变量
...
捕获也可以以数字形式使用:
server {
server_name ~^(www\.)?(.+)$;
location / {
root /sites/$2;
}
}
但是,此类用法应仅限于简单案例(如上所述),因为数字参考可以轻松覆盖。