Laravel Homestead动态映射

时间:2015-08-19 08:03:34

标签: php regex homestead

我刚刚发现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

我想更好地理解这种语法。

1 个答案:

答案 0 :(得分:1)

在这里使用命名捕获是最安全的方法。根据{{​​3}}:

  

命名的正则表达式捕获稍后可以用作变量
...
  捕获也可以以数字形式使用

server {
    server_name   ~^(www\.)?(.+)$;

    location / {
        root   /sites/$2;
    }
}
  

但是,此类用法应仅限于简单案例(如上所述),因为数字参考可以轻松覆盖