OS X Yosemite上的Homestead Laravel 5.1中的通配符动态子域

Jac*_*ham 6 subdomain dns nginx laravel homestead

我正在尝试获取通配符子域以在我的mac上本地解析(OS X Yosemite).

用户创建自己的站点,并根据用户名使用username.project.mac(或*.project.mac).

我有宅基地正常工作www.project.mac,app.project.mac并且project.mac因为这些都是预先设定的路线,但我需要username.project.mac是动态的.

.hosts

# Homestead
192.168.10.10 project.mac
192.168.10.10 app.project.mac
192.168.10.10 www.project.mac
Run Code Online (Sandbox Code Playgroud)

Homestead.yaml

---
ip: "192.168.10.10"
memory: 2048
cpus: 2

authorize: ~/.ssh/id_rsa.pub

keys:
    - ~/.ssh/id_rsa

folders:
    - map: /Users/me/Code
      to: /home/vagrant/Code

sites:
    - map: project.mac
      to: /home/vagrant/Code/project/user.project.com/public
    - map: app.project.mac
      to: /home/vagrant/Code/project/app.project.com/public
    - map: www.project.mac
      to: /home/vagrant/Code/project/www.project.com/public

databases:
    - homestead

variables:
    - key: APP_ENV
      value: local
Run Code Online (Sandbox Code Playgroud)

routes.php文件

Route::group(['domain' => '{username}.project.mac'], function ($username) {
    return $username;
});
Run Code Online (Sandbox Code Playgroud)

我甚至已经完成了这个教程:http://passingcuriosity.com/2013/dnsmasq-dev-osx/,它似乎已经工作,直到test.testing.mac我试图ping它时无法解决的最后一点.project.mac当我ping它时会解决.

我也编辑/etc/nginx/sites-available/project.macserver_name project.mac *.project.mac;按这个答复:https://laracasts.com/discuss/channels/general-discussion/homestead-and-subdomains/replies/46620

我不知道还有什么可以尝试的.

小智 0

确定的第一个问题 通常通配符域可能无法作为 *.domain.com 使用。但你可能必须尝试

server_name ~^(.*)\.example\.com$ example.com ;
Run Code Online (Sandbox Code Playgroud)

即使您在 /etc/nginx/sites-available/project.mac 中添加了更改,也要确保其符号链接在启用站点的目录中也可用。除非符号链接存在于启用站点的目录中,否则您对 prokect.mac 文件的更改将不会反映出来。

转到启用站点的目录并

sudo ln -s ../sites-available/project.mac
Run Code Online (Sandbox Code Playgroud)

您可能需要使用以下命令重新加载 nginx 服务器配置

sudo nginx -s reload
Run Code Online (Sandbox Code Playgroud)